diff --git a/web/src/lib/api/types.ts b/web/src/lib/api/types.ts index ecdd6340..9a1bd0f6 100644 --- a/web/src/lib/api/types.ts +++ b/web/src/lib/api/types.ts @@ -58,6 +58,9 @@ export type Playlist = { name: string; description: string; is_public: boolean; + kind: 'user' | 'system'; + system_variant: 'for_you' | 'songs_like_artist' | null; + seed_artist_id: string | null; cover_url: string; // empty string when no cover; UI renders glyph track_count: number; duration_sec: number; diff --git a/web/src/lib/components/AddToPlaylistMenu.test.ts b/web/src/lib/components/AddToPlaylistMenu.test.ts index 2ab49b00..5bcff140 100644 --- a/web/src/lib/components/AddToPlaylistMenu.test.ts +++ b/web/src/lib/components/AddToPlaylistMenu.test.ts @@ -12,6 +12,9 @@ const playlistsData = vi.hoisted(() => ({ name: 'B-list', description: '', is_public: false, + kind: 'user', + system_variant: null, + seed_artist_id: null, cover_url: '', track_count: 3, duration_sec: 0, @@ -25,6 +28,9 @@ const playlistsData = vi.hoisted(() => ({ name: 'A-list', description: '', is_public: false, + kind: 'user', + system_variant: null, + seed_artist_id: null, cover_url: '', track_count: 5, duration_sec: 0, @@ -58,6 +64,9 @@ vi.mock('$lib/api/playlists', () => ({ name: 'New', description: '', is_public: false, + kind: 'user', + system_variant: null, + seed_artist_id: null, cover_url: '', track_count: 0, duration_sec: 0, diff --git a/web/src/lib/components/PlaylistCard.test.ts b/web/src/lib/components/PlaylistCard.test.ts index cd33c451..03700750 100644 --- a/web/src/lib/components/PlaylistCard.test.ts +++ b/web/src/lib/components/PlaylistCard.test.ts @@ -16,6 +16,9 @@ const base: Playlist = { name: 'Saturday morning', description: '', is_public: false, + kind: 'user', + system_variant: null, + seed_artist_id: null, cover_url: '', track_count: 12, duration_sec: 0, diff --git a/web/src/routes/playlists/[id]/playlist.test.ts b/web/src/routes/playlists/[id]/playlist.test.ts index aafe04e2..3421fba0 100644 --- a/web/src/routes/playlists/[id]/playlist.test.ts +++ b/web/src/routes/playlists/[id]/playlist.test.ts @@ -56,7 +56,7 @@ const mockedQuery = createPlaylistQuery as ReturnType; const ownDetail: PlaylistDetail = { id: 'p1', user_id: 'u-self', owner_username: 'me', name: 'Mine', - description: '', is_public: false, cover_url: '', track_count: 2, duration_sec: 274, + description: '', is_public: false, kind: 'user', system_variant: null, seed_artist_id: null, cover_url: '', track_count: 2, duration_sec: 274, created_at: '', updated_at: '', tracks: [ { position: 0, track_id: 't1', album_id: 'a1', artist_id: 'ar1', title: 'A', artist_name: 'X', album_title: 'Y', duration_sec: 137, stream_url: '/api/tracks/t1/stream', added_at: '' }, diff --git a/web/src/routes/playlists/playlists.test.ts b/web/src/routes/playlists/playlists.test.ts index 73efcb61..25d20f9f 100644 --- a/web/src/routes/playlists/playlists.test.ts +++ b/web/src/routes/playlists/playlists.test.ts @@ -27,7 +27,7 @@ const mockedCreatePlaylist = createPlaylist as ReturnType; function p(over: Partial): Playlist { return { id: 'p1', user_id: 'u-self', owner_username: 'me', name: 'A', - description: '', is_public: false, cover_url: '', track_count: 0, duration_sec: 0, + description: '', is_public: false, kind: 'user', system_variant: null, seed_artist_id: null, cover_url: '', track_count: 0, duration_sec: 0, created_at: '', updated_at: '', ...over }; }