aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/sync/manager.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/sync/manager.test.ts')
-rw-r--r--src/client/sync/manager.test.ts56
1 files changed, 48 insertions, 8 deletions
diff --git a/src/client/sync/manager.test.ts b/src/client/sync/manager.test.ts
index 96fb97d..a3799c0 100644
--- a/src/client/sync/manager.test.ts
+++ b/src/client/sync/manager.test.ts
@@ -19,6 +19,41 @@ import { PullService, type SyncPullResult } from "./pull";
import { PushService, type SyncPushResult } from "./push";
import { SyncQueue } from "./queue";
+function createEmptyConflicts() {
+ return {
+ decks: [] as string[],
+ cards: [] as string[],
+ noteTypes: [] as string[],
+ noteFieldTypes: [] as string[],
+ notes: [] as string[],
+ noteFieldValues: [] as string[],
+ };
+}
+
+function createEmptyPullResult(
+ currentSyncVersion = 0,
+): Omit<SyncPullResult, "decks" | "cards" | "reviewLogs"> {
+ return {
+ noteTypes: [],
+ noteFieldTypes: [],
+ notes: [],
+ noteFieldValues: [],
+ currentSyncVersion,
+ };
+}
+
+function createEmptyPushResult(): Omit<
+ SyncPushResult,
+ "decks" | "cards" | "reviewLogs" | "conflicts"
+> {
+ return {
+ noteTypes: [],
+ noteFieldTypes: [],
+ notes: [],
+ noteFieldValues: [],
+ };
+}
+
describe("SyncManager", () => {
let syncQueue: SyncQueue;
let conflictResolver: ConflictResolver;
@@ -63,14 +98,15 @@ describe("SyncManager", () => {
decks: [],
cards: [],
reviewLogs: [],
- conflicts: { decks: [], cards: [] },
+ ...createEmptyPushResult(),
+ conflicts: createEmptyConflicts(),
} satisfies SyncPushResult);
pullFromServer = vi.fn().mockResolvedValue({
decks: [],
cards: [],
reviewLogs: [],
- currentSyncVersion: 0,
+ ...createEmptyPullResult(0),
} satisfies SyncPullResult);
conflictResolver = new ConflictResolver({ strategy: "server_wins" });
@@ -249,7 +285,8 @@ describe("SyncManager", () => {
decks: [{ id: "deck-1", syncVersion: 1 }],
cards: [],
reviewLogs: [],
- conflicts: { decks: [], cards: [] },
+ ...createEmptyPushResult(),
+ conflicts: createEmptyConflicts(),
};
pushToServer.mockResolvedValue(expectedPushResult);
@@ -257,7 +294,7 @@ describe("SyncManager", () => {
decks: [],
cards: [],
reviewLogs: [],
- currentSyncVersion: 5,
+ ...createEmptyPullResult(5),
};
pullFromServer.mockResolvedValue(expectedPullResult);
@@ -323,7 +360,8 @@ describe("SyncManager", () => {
decks: [],
cards: [],
reviewLogs: [],
- conflicts: { decks: [], cards: [] },
+ ...createEmptyPushResult(),
+ conflicts: createEmptyConflicts(),
}),
100,
),
@@ -357,7 +395,8 @@ describe("SyncManager", () => {
decks: [{ id: deck.id, syncVersion: 1 }],
cards: [],
reviewLogs: [],
- conflicts: { decks: [deck.id], cards: [] },
+ ...createEmptyPushResult(),
+ conflicts: { ...createEmptyConflicts(), decks: [deck.id] },
};
pushToServer.mockResolvedValue(pushResult);
@@ -377,7 +416,7 @@ describe("SyncManager", () => {
],
cards: [],
reviewLogs: [],
- currentSyncVersion: 5,
+ ...createEmptyPullResult(5),
};
pullFromServer.mockResolvedValue(pullResult);
@@ -573,7 +612,8 @@ describe("SyncManager", () => {
decks: [],
cards: [],
reviewLogs: [],
- conflicts: { decks: [], cards: [] },
+ ...createEmptyPushResult(),
+ conflicts: createEmptyConflicts(),
}),
100,
),