Skip to content

Traceability Appendix

This appendix is the receipts page: it confirms that for each requirement (US/AC), the planned tests exist in the repo at the scope-freeze commit.

  • Scope freeze commit: 2fdb518
  • Note on Baseline: Items labeled “Baseline” in the plan were manual checks performed pre-automation. See the separate baseline report for details.

Baseline (Manual, pre-automation)

Area Notes Link
Ranking flows & filters Manual baseline prior to automation; see report. baseline.md
Rankings playback stability Manual baseline prior to automation; see report. baseline.md

US-01 — Authenticate with Spotify

AC Tests (IDs) File links
AC-01.1 — Redirect back with valid session UT-001-Auth
IT-001-Auth
ut-001-auth.spec.ts
it-001-auth.spec.ts
AC-01.2 — Prompt login if unauthenticated
protected action
UI-001-AuthGuard
IT-002-Auth
IT-010-Auth
E2E-003-Auth
ui-001-authguard.spec.tsx
it-002-auth.spec.ts
it-010-auth.spec.ts
e2e-003-auth.cy.ts
AC-01.3 — No tokens stored on cancel IT-001 (callback error path) it-001-auth.spec.ts
AC-01.4 — Tokens stored securely UT-001-Auth
IT-001-Auth
ut-001-auth.spec.ts
it-001-auth.spec.ts
AC-01.5 — Token refresh works UT-008-Auth
IT-010-Auth
ut-008-auth.spec.ts
it-010-auth.spec.ts

US-02 — Export ranked songs by current filter (Inline)

AC Tests (IDs) File links
AC-02.1 — Inline selection creates playlist with checked/filtered songs UT-003-Export
UT-004-Export
UI-010-SelectionInline
IT-003-Export
E2E-001-Export
ut-003-export.spec.ts
ut-004-export-mapping.spec.ts
ui-010-selection-inline.spec.tsx
it-003-export.spec.ts
e2e-001-export.cy.ts
AC-02.2 — Empty filter or zero selected disables export UI-011-SelectionInline
IT-004-Export
E2E-002-Export
ui-011-selection-inline.spec.tsx
it-004-export.spec.ts
e2e-002-export.cy.ts
AC-02.3 — Spotify track mapping applied UT-004-Export
IT-013-MappingSearch
IT-012-Ranked
UT-011-Export
ut-004-export-mapping.spec.ts
it-013-mappingsearch.spec.ts
it-012-ranked.spec.ts
ut-011-export-selector.spec.ts
AC-02.4 — Only checked, ranked, unskipped included UT-009-Export
UT-010-Export
UT-011-Export
IT-005-Export
IT-006-Export
E2E-008-Mobile
ut-009-export-chunking.spec.ts
ut-010-export-selector-empty.spec.ts
ut-011-export-selector.spec.ts
it-005-export.spec.ts
it-006-export.spec.ts
e2e-008-mobile.cy.ts

US-03 — Review and remove before export (Inline)

AC Tests (IDs) File links
AC-03.1 — Inline uncheck updates list UI-010-SelectionInline
IT-005-Export
UI-002-ExportModal
ui-010-selection-inline.spec.tsx
it-005-export.spec.ts
ui-002-exportmodal.spec.tsx
AC-03.2 — Only remaining checked songs exported UI-012-SelectionSummary
IT-005-Export
UI-003-ExportModal
ui-012-selection-summary.spec.tsx
it-005-export.spec.ts
ui-003-exportmodal.spec.tsx
AC-03.3 — Re-enter reflects latest filters; defaults checked UI-013-SelectionLifecycle
IT-005-Export
ui-013-selection-lifecycle.spec.tsx
it-005-export.spec.ts

TS-01 — Mapping service toggle & rules (Milestone A)

AC Tests (IDs) File links
AC-TS2.3.A–F — toggle/defaults, ISRC canonical,
variant tie, structured reasons,
per-batch caching, 429/timeout
UT-004-Export
IT-013-MappingSearch
ut-004-export-mapping.spec.ts
it-013-mappingsearch.spec.ts

US-04 — Add playlist name and description (Inline)

AC Tests (IDs) File links
AC-04.1 — Name/description applied UT-006-Export
UI-014-NameFields
IT-006-Export
UI-004-ExportModal
ut-006-export-payload-name.spec.ts
ui-014-namefields.spec.tsx
it-006-export.spec.ts
ui-004-exportmodal.spec.tsx
AC-04.2 — Default name format UI-014-NameFields
IT-006-Export
ui-014-namefields.spec.tsx
it-006-export.spec.ts

US-05 — Real-time feedback during export

AC Tests (IDs) File links
AC-05.1 — Progress shown UI-005-Progress
IT-007-Errors
E2E-004-Errors
ui-005-progress.spec.tsx
it-007-errors.spec.ts
e2e-004-errors.cy.ts
AC-05.2 — Success state E2E-001-Export e2e-001-export.cy.ts
AC-05.3 — Error state UI-005-Progress
IT-007-Errors
E2E-004-Errors
ui-005-progress.spec.tsx
it-007-errors.spec.ts
e2e-004-errors.cy.ts

TS-02 — Progress & error contract (Milestone B)

AC Tests (IDs) File links
AC-TS2.1–2.4 — success/failure envelopes;
partial passthrough; UI transitions
UI-005-Progress
IT-007-Errors
E2E-004-Errors
ui-005-progress.spec.tsx
it-007-errors.spec.ts
e2e-004-errors.cy.ts

US-06 — Error handling

AC Tests (IDs) File links
AC-06.1 — Per-song errors surfaced UT-007-Export
UI-006-Errors
IT-011-Errors
E2E-009-Errors
ut-007-export-per-item.spec.ts
ui-006-errors.spec.tsx
it-011-errors.spec.ts
e2e-009-errors.cy.ts
AC-06.2 — 429 shows “Try again later” UT-005-Export
IT-008-Export
E2E-005-RateLimit
ut-005-export-429.spec.ts
it-008-export-429.spec.ts
e2e-005-ratelimit.cy.ts
AC-06.3 — Retry or skip available UT-007-Export
UI-006-Errors
IT-011-Errors
E2E-009-Errors
ut-007-export-per-item.spec.ts
ui-006-errors.spec.tsx
it-011-errors.spec.ts
e2e-009-errors.cy.ts

TS-03 — Per-track pipeline & 429 policy (Milestone C)

AC Tests (IDs) File links
AC-TS3.1–3.5 — chunking, aggregate results,
per-track failures, Retry-After/bounded backoff,
determinism
UT-005-Export
UT-007-Export
IT-008-Export
IT-011-Errors
E2E-005-RateLimit
E2E-009-Errors
ut-005-export-429.spec.ts
ut-007-export-per-item.spec.ts
it-008-export-429.spec.ts
it-011-errors.spec.ts
e2e-005-ratelimit.cy.ts
e2e-009-errors.cy.ts

AC Tests (IDs) File links
AC-07.1 — Confirmation link present UI-007-Confirm
IT-009-Confirm
ui-007-confirm.spec.tsx
it-009-confirm.spec.ts
AC-07.2 — Deep link with fallback UI-008-DeepLink
E2E-006-DeepLink
ui-008-deeplink.spec.tsx
e2e-006-deeplink.cy.ts

US-08 — Revoke Spotify access

AC Tests (IDs) File links
AC-08.1 — Disconnect invalidates tokens UT-002-Auth
IT-010-Auth
E2E-007-Revoke
ut-002-auth-revoke.spec.ts
it-010-auth.spec.ts
e2e-007-revoke.cy.ts
AC-08.2 — Export prompts reconnect UI-001-AuthGuard
IT-010-Auth
E2E-007-Revoke
ui-001-authguard.spec.tsx
it-010-auth.spec.ts
e2e-007-revoke.cy.ts
AC-08.3 — Removed from Spotify connected apps IT-010-Auth it-010-auth.spec.ts

TS-04 — Real Spotify integration (Milestone D)

AC Tests (IDs) File links
AC-TS4.1–4.4 — real Spotify client for create/add; real-worker integration on /api/playlist/export; partial-failure envelope coverage; UI wiring of backend playlistUrl UT-013-SpotifyClient
IT-004-Export
IT-015-ExportPartialFailures
E2E-010-ExportRealUrl
ut-013-spotify-client.spec.ts
it-004-export.spec.ts
it-015-export-partial-failures.spec.ts
e2e-010-real-url.cy.ts