From 59ffc491bdea829630a23f9c1228ca9449944237 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 31 Dec 2025 18:54:00 +0900 Subject: refactor(sync): simplify ConflictResolutionResult to use string arrays MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove ConflictResolutionItem type since resolution field was always "server_wins" and provided no useful information. Resolution arrays now contain entity IDs directly instead of objects. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/sync/conflict.test.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'src/client/sync/conflict.test.ts') diff --git a/src/client/sync/conflict.test.ts b/src/client/sync/conflict.test.ts index 3fe8b67..bcd8dae 100644 --- a/src/client/sync/conflict.test.ts +++ b/src/client/sync/conflict.test.ts @@ -173,7 +173,7 @@ describe("ConflictResolver", () => { const resolver = new ConflictResolver(); const result = await resolver.resolveDeckConflict(localDeck, serverDeck); - expect(result.resolution).toBe("server_wins"); + expect(result).toBe(localDeck.id); const updatedDeck = await localDeckRepository.findById(localDeck.id); expect(updatedDeck?.name).toBe("Server Name"); @@ -225,7 +225,7 @@ describe("ConflictResolver", () => { const resolver = new ConflictResolver(); const result = await resolver.resolveCardConflict(localCard, serverCard); - expect(result.resolution).toBe("server_wins"); + expect(result).toBe(localCard.id); const updatedCard = await localCardRepository.findById(localCard.id); expect(updatedCard?.front).toBe("Server Question"); @@ -300,8 +300,8 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.decks).toHaveLength(2); - expect(result.decks[0]?.resolution).toBe("server_wins"); - expect(result.decks[1]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(deck1.id); + expect(result.decks[1]).toBe(deck2.id); const updatedDeck1 = await localDeckRepository.findById(deck1.id); const updatedDeck2 = await localDeckRepository.findById(deck2.id); @@ -369,7 +369,7 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.cards).toHaveLength(1); - expect(result.cards[0]?.resolution).toBe("server_wins"); + expect(result.cards[0]).toBe(card.id); const updatedCard = await localCardRepository.findById(card.id); expect(updatedCard?.front).toBe("Server Question"); @@ -413,7 +413,7 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.decks).toHaveLength(1); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe("non-existent-deck"); const insertedDeck = await localDeckRepository.findById("non-existent-deck"); @@ -500,7 +500,7 @@ describe("ConflictResolver", () => { const resolver = new ConflictResolver(); const result = await resolver.resolveConflicts(pushResult, pullResult); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(deck.id); const updatedDeck = await localDeckRepository.findById(deck.id); expect(updatedDeck?.name).toBe("Server Name"); @@ -575,7 +575,7 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.decks).toHaveLength(1); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(localDeck.id); // Verify the CRDT sync state was updated const storedBinary = await crdtSyncStateManager.getDocumentBinary( @@ -637,7 +637,7 @@ describe("ConflictResolver", () => { // Should still resolve using fallback expect(result.decks).toHaveLength(1); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(localDeck.id); // Server data should be applied const updatedDeck = await localDeckRepository.findById(localDeck.id); @@ -687,7 +687,7 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.decks).toHaveLength(1); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(localDeck.id); const updatedDeck = await localDeckRepository.findById(localDeck.id); expect(updatedDeck?.name).toBe("Server Name"); @@ -750,7 +750,7 @@ describe("ConflictResolver", () => { const result = await resolver.resolveConflicts(pushResult, pullResult); expect(result.decks).toHaveLength(1); - expect(result.decks[0]?.resolution).toBe("server_wins"); + expect(result.decks[0]).toBe(localDeck.id); // Verify CRDT document was stored const storedBinary = await crdtSyncStateManager.getDocumentBinary( -- cgit v1.2.3-70-g09d2