From d3c8754a5d4a8055b88d25c04c02ca8f425870aa Mon Sep 17 00:00:00 2001 From: Samu Date: Fri, 4 Sep 2026 14:04:24 +0200 Subject: [PATCH] fix: hide navidrome link when webUrl is null (cleared subsonic url) --- web/src/pages/ItemPage.tsx | 2 +- web/src/types.ts | 2 +- web/test/item.test.tsx | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/web/src/pages/ItemPage.tsx b/web/src/pages/ItemPage.tsx index 04136eb..fb94b12 100644 --- a/web/src/pages/ItemPage.tsx +++ b/web/src/pages/ItemPage.tsx @@ -108,7 +108,7 @@ export default function ItemPage() {

)} - {item.matchedAlbum && ( + {item.matchedAlbum?.webUrl && ( { expect(screen.queryByRole('link', { name: /listen in navidrome/i })).toBeNull() }) + it('link hidden when the subsonic url was cleared (webUrl null)', async () => { + vi.mocked(api.getItem).mockResolvedValue({ + ...item, + ripStatus: 'ripped', + matchedAlbum: { id: 77, subsonicId: 'alb-1', lastPlayedAt: null, webUrl: null }, + } as never) + renderItem() + await waitFor(() => expect(screen.getByRole('heading', { name: 'Motion' })).toBeTruthy()) + expect(screen.queryByRole('link', { name: /listen in navidrome/i })).toBeNull() + }) + it('shows last played under the rip banner', async () => { vi.mocked(api.getItem).mockResolvedValue(rippedItem as never) renderItem()