refactor(04-01): move API list test stubs into tests/ mirror dir to match convention
The two Wave-0 RED stubs (lists.test.ts, listEmitter.test.ts) were co-located in src/ but all existing API tests live in apps/api/tests/. Move them to tests/routes/ and tests/lib/, add explicit vitest imports to match the tests/ convention, and update path references in downstream plans 04-02..04-06. PWA tests keep co-location (that IS the PWA convention).
This commit is contained in:
@@ -6,7 +6,7 @@ wave: 2
|
||||
depends_on: ["04-01"]
|
||||
files_modified:
|
||||
- apps/api/src/lib/listEmitter.ts
|
||||
- apps/api/src/lib/listEmitter.test.ts
|
||||
- apps/api/tests/lib/listEmitter.test.ts
|
||||
- apps/api/src/lib/listAccess.ts
|
||||
- apps/api/src/lib/listAccess.test.ts
|
||||
autonomous: true
|
||||
@@ -26,7 +26,7 @@ must_haves:
|
||||
- path: "apps/api/src/lib/listAccess.ts"
|
||||
provides: "getAccessibleListIds(userId) access-scope query"
|
||||
exports: ["getAccessibleListIds"]
|
||||
- path: "apps/api/src/lib/listEmitter.test.ts"
|
||||
- path: "apps/api/tests/lib/listEmitter.test.ts"
|
||||
provides: "scoped fan-out correctness tests (D-04)"
|
||||
contains: "describe"
|
||||
key_links:
|
||||
@@ -65,11 +65,11 @@ Output: `publishListEvent`/`subscribeListEvents` (in-memory EventEmitter singlet
|
||||
<feature>
|
||||
<name>Scoped in-memory list event fan-out + access-scope query (D-04)</name>
|
||||
<files>
|
||||
apps/api/src/lib/listEmitter.ts, apps/api/src/lib/listEmitter.test.ts,
|
||||
apps/api/src/lib/listEmitter.ts, apps/api/tests/lib/listEmitter.test.ts,
|
||||
apps/api/src/lib/listAccess.ts, apps/api/src/lib/listAccess.test.ts
|
||||
</files>
|
||||
<read_first>
|
||||
- apps/api/src/lib/listEmitter.test.ts (RED stub from Plan 01 — convert to real assertions)
|
||||
- apps/api/tests/lib/listEmitter.test.ts (RED stub from Plan 01 — convert to real assertions)
|
||||
- apps/api/src/db/schema.ts (lists, listShares tables created in Plan 01)
|
||||
- apps/api/src/routes/events.ts lines 1-110 (db query + drizzle and/or/eq conventions)
|
||||
- .planning/phases/04-shared-lists-live-sync/04-RESEARCH.md Finding 1 + Finding 3 (verbatim patterns)
|
||||
@@ -116,7 +116,7 @@ Output: `publishListEvent`/`subscribeListEvents` (in-memory EventEmitter singlet
|
||||
</threat_model>
|
||||
|
||||
<verification>
|
||||
<automated>pnpm --filter @familysync/api exec vitest run src/lib/listEmitter.test.ts src/lib/listAccess.test.ts</automated>
|
||||
<automated>pnpm --filter @familysync/api exec vitest run tests/lib/listEmitter.test.ts src/lib/listAccess.test.ts</automated>
|
||||
- Test 2 (cross-list isolation) and Test 7 (private list excluded) MUST be present and green.
|
||||
</verification>
|
||||
|
||||
@@ -131,7 +131,7 @@ Output: `publishListEvent`/`subscribeListEvents` (in-memory EventEmitter singlet
|
||||
**Symbols/files this plan creates (exclude from drift verification):**
|
||||
- `apps/api/src/lib/listEmitter.ts` exporting `publishListEvent(listId, event)`, `subscribeListEvents(listId, handler): () => void`, type `ListEvent`
|
||||
- `apps/api/src/lib/listAccess.ts` exporting `getAccessibleListIds(userId): Promise<number[]>`
|
||||
- Tests: `apps/api/src/lib/listEmitter.test.ts`, `apps/api/src/lib/listAccess.test.ts`
|
||||
- Tests: `apps/api/tests/lib/listEmitter.test.ts`, `apps/api/src/lib/listAccess.test.ts`
|
||||
</artifacts_produced>
|
||||
|
||||
<output>
|
||||
|
||||
Reference in New Issue
Block a user