28 lines
1.0 KiB
Swift
28 lines
1.0 KiB
Swift
import XCTest
|
|
@testable import FchatyApp
|
|
|
|
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)
|
|
}
|
|
}
|