From 418cc330cc81251bb43aa6700cdd3f1df73bcd13 Mon Sep 17 00:00:00 2001 From: Toomas Vahter Date: Thu, 19 Sep 2024 15:36:10 +0300 Subject: [PATCH] Add test for storing microseconds date in DB --- .../Database/DatabaseContainer_Tests.swift | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Tests/StreamChatTests/Database/DatabaseContainer_Tests.swift b/Tests/StreamChatTests/Database/DatabaseContainer_Tests.swift index 98e89fb9ee..0eb207afa2 100644 --- a/Tests/StreamChatTests/Database/DatabaseContainer_Tests.swift +++ b/Tests/StreamChatTests/Database/DatabaseContainer_Tests.swift @@ -339,6 +339,26 @@ final class DatabaseContainer_Tests: XCTestCase { } } + func test_storingMicrosecondsDate() throws { + let expectedCreatedAt = Date(timeIntervalSinceReferenceDate: 0.000123123) + let currentUserId = String.unique + let container = DatabaseContainer_Spy() + try container.writeSynchronously { session in + try session.saveCurrentUser( + payload: .dummy( + userId: currentUserId, + createdAt: expectedCreatedAt, + role: .admin + ) + ) + } + let user = try container.readSynchronously { session in + try XCTUnwrap(session.currentUser).asModel() + } + // Note! Date limits precision to 0.000_000_1 + XCTAssertEqual(978_307_200.000_123_1, user.userCreatedAt.timeIntervalSince1970, "Microseconds date is not stored correctly") + } + // MARK: - private func writeDataForAllEntities(to container: DatabaseContainer) throws {