LwwMergerTest.swift
82 lignes · 2722 octets
import XCTest @testable import Card2vcf final class LwwMergerTest: XCTestCase { func testPickLww_remoteNewerWins() { let result = LwwMerger.pickLww( local: "local-value", localTs: 100, remote: "remote-value", remoteTs: 200 ) XCTAssertEqual("remote-value", result) } func testPickLww_localNewerWins() { let result = LwwMerger.pickLww( local: "local-value", localTs: 300, remote: "remote-value", remoteTs: 200 ) XCTAssertEqual("local-value", result) } func testPickLww_equalTimestampsRemoteWins() { let result = LwwMerger.pickLww( local: "local-value", localTs: 100, remote: "remote-value", remoteTs: 100 ) XCTAssertEqual("remote-value", result) } func testPickTaskMove_remoteNewerWins() { let local = LwwMerger.TaskPlacement(colonneId: "todo", ordre: 1, updatedAt: 100) let remote = LwwMerger.TaskPlacement(colonneId: "done", ordre: 2, updatedAt: 200) let result = LwwMerger.pickTaskMove(local: local, remote: remote) XCTAssertEqual(remote, result) } func testPickTaskMove_localNewerWins() { let local = LwwMerger.TaskPlacement(colonneId: "todo", ordre: 1, updatedAt: 300) let remote = LwwMerger.TaskPlacement(colonneId: "done", ordre: 2, updatedAt: 200) let result = LwwMerger.pickTaskMove(local: local, remote: remote) XCTAssertEqual(local, result) } func testPickTaskMove_equalTimestampsRemoteWins() { let local = LwwMerger.TaskPlacement(colonneId: "todo", ordre: 1, updatedAt: 100) let remote = LwwMerger.TaskPlacement(colonneId: "done", ordre: 2, updatedAt: 100) let result = LwwMerger.pickTaskMove(local: local, remote: remote) XCTAssertEqual(remote, result) } func testShouldInsertInteraction_whenUnknownServerId() { let existing: Set<String> = ["srv-1", "srv-2"] XCTAssertTrue(LwwMerger.shouldInsertInteraction(existingServerIds: existing, remoteServerId: "srv-3")) } func testShouldInsertInteraction_whenKnownServerId() { let existing: Set<String> = ["srv-1", "srv-2"] XCTAssertFalse(LwwMerger.shouldInsertInteraction(existingServerIds: existing, remoteServerId: "srv-1")) } func testApplyTombstoneIds_removesMatchingIds() { let local: Set<String> = ["a", "b", "c"] let tombstones: Set<String> = ["b", "d"] let remaining = LwwMerger.applyTombstoneIds(localServerIds: local, tombstoneIds: tombstones) XCTAssertEqual(Set(["a", "c"]), remaining) } }
GitRust