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()