From efa52484d4305d702e117ab8ca6781a0a1cb72cf Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 13 May 2026 15:05:59 -0400 Subject: [PATCH] fix(web): add player stub to player-store mocks for TrackRow tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #401 introduced player.current?.id reads into TrackRow.svelte and PlaylistTrackRow.svelte, breaking 26 test cases across 6 files whose existing vi.mock('$lib/player/store.svelte', ...) blocks only stubbed the functions used by the original components. Added player: { current: undefined } to each affected mock — keeps the existing function spies and lets the new isCurrent derivation read a defined (false-y) player.current without blowing up. Only updated the 6 files that failed; 16 other player-store mocks exist across the suite but their tests don't render Track/Playlist rows so the derivation never fires. Future tests that render those rows will need the same stub (visible at the failure point with a clear error message). Co-Authored-By: Claude Opus 4.7 (1M context) --- web/src/lib/components/PlaylistTrackRow.test.ts | 3 ++- web/src/lib/components/TrackRow.test.ts | 3 ++- web/src/routes/library/liked/liked.test.ts | 3 ++- web/src/routes/playlists/[id]/playlist.test.ts | 3 ++- web/src/routes/search/search.test.ts | 3 ++- web/src/routes/search/tracks/tracks.test.ts | 3 ++- 6 files changed, 12 insertions(+), 6 deletions(-) diff --git a/web/src/lib/components/PlaylistTrackRow.test.ts b/web/src/lib/components/PlaylistTrackRow.test.ts index 0dc47b4c..acee2938 100644 --- a/web/src/lib/components/PlaylistTrackRow.test.ts +++ b/web/src/lib/components/PlaylistTrackRow.test.ts @@ -29,7 +29,8 @@ vi.mock('$lib/player/store.svelte', () => ({ playNext: vi.fn(), enqueueTrack: vi.fn(), playQueue: vi.fn(), - playRadio: vi.fn() + playRadio: vi.fn(), + player: { current: undefined } })); import PlaylistTrackRow from './PlaylistTrackRow.svelte'; diff --git a/web/src/lib/components/TrackRow.test.ts b/web/src/lib/components/TrackRow.test.ts index a1717f28..b95cb542 100644 --- a/web/src/lib/components/TrackRow.test.ts +++ b/web/src/lib/components/TrackRow.test.ts @@ -8,7 +8,8 @@ import { makeTrack } from '$test-utils/fixtures/track'; vi.mock('$lib/player/store.svelte', () => ({ playQueue: vi.fn(), enqueueTrack: vi.fn(), - playRadio: vi.fn() + playRadio: vi.fn(), + player: { current: undefined } })); vi.mock('$lib/api/likes', () => emptyLikesMock()); diff --git a/web/src/routes/library/liked/liked.test.ts b/web/src/routes/library/liked/liked.test.ts index ee9ae4b4..7fb0fd53 100644 --- a/web/src/routes/library/liked/liked.test.ts +++ b/web/src/routes/library/liked/liked.test.ts @@ -21,7 +21,8 @@ vi.mock('$lib/api/likes', () => ({ vi.mock('$lib/api/client', () => apiClientMock()); vi.mock('$lib/player/store.svelte', () => ({ - playQueue: vi.fn(), enqueueTrack: vi.fn(), enqueueTracks: vi.fn() + playQueue: vi.fn(), enqueueTrack: vi.fn(), enqueueTracks: vi.fn(), + player: { current: undefined } })); import LikedPage from './+page.svelte'; diff --git a/web/src/routes/playlists/[id]/playlist.test.ts b/web/src/routes/playlists/[id]/playlist.test.ts index 4c6f5a10..4eac7aef 100644 --- a/web/src/routes/playlists/[id]/playlist.test.ts +++ b/web/src/routes/playlists/[id]/playlist.test.ts @@ -30,7 +30,8 @@ vi.mock('$lib/player/store.svelte', () => ({ playQueue: vi.fn(), enqueueTracks: vi.fn(), playNext: vi.fn(), - enqueueTrack: vi.fn() + enqueueTrack: vi.fn(), + player: { current: undefined } })); // Cascade through PlaylistTrackRow's mocks (LikeButton + TrackMenu transitively). diff --git a/web/src/routes/search/search.test.ts b/web/src/routes/search/search.test.ts index 44bc3986..99b2db59 100644 --- a/web/src/routes/search/search.test.ts +++ b/web/src/routes/search/search.test.ts @@ -21,7 +21,8 @@ vi.mock('$lib/player/store.svelte', () => ({ playQueue: vi.fn(), playRadio: vi.fn(), enqueueTrack: vi.fn(), - enqueueTracks: vi.fn() + enqueueTracks: vi.fn(), + player: { current: undefined } })); vi.mock('$lib/api/client', () => apiClientMock()); diff --git a/web/src/routes/search/tracks/tracks.test.ts b/web/src/routes/search/tracks/tracks.test.ts index 8cb4c07e..7a5a62c2 100644 --- a/web/src/routes/search/tracks/tracks.test.ts +++ b/web/src/routes/search/tracks/tracks.test.ts @@ -18,7 +18,8 @@ vi.mock('$lib/api/queries', () => ({ vi.mock('$lib/player/store.svelte', () => ({ playQueue: vi.fn(), playRadio: vi.fn(), - enqueueTrack: vi.fn() + enqueueTrack: vi.fn(), + player: { current: undefined } })); vi.mock('$lib/api/likes', () => emptyLikesMock());