From 0c042ac89fc0822fcbe09c48702857faa5494ae1 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 7 Dec 2025 23:34:03 +0900 Subject: feat(client): add sync status indicator component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add SyncStatusIndicator component to display current sync state in the UI header. The component shows online/offline status, syncing progress, pending changes count, and sync errors. - Create SyncProvider context to wrap SyncManager for React components - Add SyncStatusIndicator component with visual status indicators - Integrate indicator into HomePage header - Add comprehensive tests for SyncStatusIndicator and SyncProvider - Update existing tests to include SyncProvider wrapper 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/sync/pull.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/client/sync/pull.test.ts') diff --git a/src/client/sync/pull.test.ts b/src/client/sync/pull.test.ts index 1aaac84..23c64ef 100644 --- a/src/client/sync/pull.test.ts +++ b/src/client/sync/pull.test.ts @@ -5,7 +5,7 @@ import "fake-indexeddb/auto"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { CardState, db, Rating } from "../db/index"; import { localCardRepository, localDeckRepository } from "../db/repositories"; -import { pullResultToLocalData, PullService } from "./pull"; +import { PullService, pullResultToLocalData } from "./pull"; import { SyncQueue } from "./queue"; describe("pullResultToLocalData", () => { @@ -68,7 +68,9 @@ describe("pullResultToLocalData", () => { currentSyncVersion: 3, }); - expect(result.decks[0]?.deletedAt).toEqual(new Date("2024-01-03T12:00:00Z")); + expect(result.decks[0]?.deletedAt).toEqual( + new Date("2024-01-03T12:00:00Z"), + ); }); it("should convert server cards to local format", () => { @@ -410,7 +412,9 @@ describe("PullService", () => { }); it("should throw error if pull fails", async () => { - const pullFromServer = vi.fn().mockRejectedValue(new Error("Network error")); + const pullFromServer = vi + .fn() + .mockRejectedValue(new Error("Network error")); const pullService = new PullService({ syncQueue, -- cgit v1.2.3-70-g09d2