fchaty/FchatiApp/Tests/FchatiAppTests/MessageStoreModelTests.swift
2026-07-26 17:36:46 +02:00

28 lines
1.0 KiB
Swift

import XCTest
@testable import FchatiApp
final class MessageStoreModelTests: XCTestCase {
func testMessageRoundTripPreservesAttachmentAndReadStatus() throws {
let message = ChatMessage(
id: "message-id",
from: "peer-id",
fromName: "Alex",
body: "Shared a file: photo.jpg",
sentAt: Date(timeIntervalSince1970: 1_721_995_200),
attachment: AttachmentInfo(fileID: "file-id", name: "photo.jpg", size: 128),
isRead: false
)
let encoder = JSONEncoder()
encoder.dateEncodingStrategy = .iso8601
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let encodedMessage = try encoder.encode(message)
let decodedMessage = try decoder.decode(ChatMessage.self, from: encodedMessage)
XCTAssertEqual(decodedMessage.id, message.id)
XCTAssertEqual(decodedMessage.attachment, message.attachment)
XCTAssertEqual(decodedMessage.isRead, message.isRead)
}
}