From c77da463a60061877cd7ddea1bd7b723b3bf2455 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 31 Dec 2025 00:53:48 +0900 Subject: feat(repo): extend CardRepository with note data support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add noteId and isReversed fields to Card interface for note-based cards. Implement findByIdWithNoteData, findByNoteId, and softDeleteByNoteId methods to support fetching cards with their associated note data and cascading deletions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/server/routes/cards.test.ts | 5 +++++ src/server/routes/study.test.ts | 5 +++++ src/server/routes/sync.test.ts | 4 ++++ 3 files changed, 14 insertions(+) (limited to 'src/server/routes') diff --git a/src/server/routes/cards.test.ts b/src/server/routes/cards.test.ts index d319b33..129efa6 100644 --- a/src/server/routes/cards.test.ts +++ b/src/server/routes/cards.test.ts @@ -15,9 +15,12 @@ function createMockCardRepo(): CardRepository { return { findByDeckId: vi.fn(), findById: vi.fn(), + findByIdWithNoteData: vi.fn(), + findByNoteId: vi.fn(), create: vi.fn(), update: vi.fn(), softDelete: vi.fn(), + softDeleteByNoteId: vi.fn(), findDueCards: vi.fn(), updateFSRSFields: vi.fn(), }; @@ -66,6 +69,8 @@ function createMockCard(overrides: Partial = {}): Card { return { id: "card-uuid-123", deckId: "deck-uuid-123", + noteId: null, + isReversed: null, front: "Question", back: "Answer", state: CardState.New, diff --git a/src/server/routes/study.test.ts b/src/server/routes/study.test.ts index 6c45d3a..d709750 100644 --- a/src/server/routes/study.test.ts +++ b/src/server/routes/study.test.ts @@ -17,9 +17,12 @@ function createMockCardRepo(): CardRepository { return { findByDeckId: vi.fn(), findById: vi.fn(), + findByIdWithNoteData: vi.fn(), + findByNoteId: vi.fn(), create: vi.fn(), update: vi.fn(), softDelete: vi.fn(), + softDeleteByNoteId: vi.fn(), findDueCards: vi.fn(), updateFSRSFields: vi.fn(), }; @@ -74,6 +77,8 @@ function createMockCard(overrides: Partial = {}): Card { return { id: "card-uuid-123", deckId: "deck-uuid-123", + noteId: null, + isReversed: null, front: "Question", back: "Answer", state: CardState.New, diff --git a/src/server/routes/sync.test.ts b/src/server/routes/sync.test.ts index e1b389f..7492b49 100644 --- a/src/server/routes/sync.test.ts +++ b/src/server/routes/sync.test.ts @@ -584,6 +584,8 @@ describe("GET /api/sync/pull", () => { const mockCard: Card = { id: "550e8400-e29b-41d4-a716-446655440001", deckId: "550e8400-e29b-41d4-a716-446655440000", + noteId: null, + isReversed: null, front: "Question", back: "Answer", state: 2, @@ -679,6 +681,8 @@ describe("GET /api/sync/pull", () => { const mockCard: Card = { id: "550e8400-e29b-41d4-a716-446655440001", deckId: "550e8400-e29b-41d4-a716-446655440000", + noteId: null, + isReversed: null, front: "Q", back: "A", state: 0, -- cgit v1.2.3-70-g09d2