diff --git a/frontend/src/lib/notification/NotificationDropdown.svelte b/frontend/src/lib/notification/NotificationDropdown.svelte index 32d6b0cf..9f2c6c58 100644 --- a/frontend/src/lib/notification/NotificationDropdown.svelte +++ b/frontend/src/lib/notification/NotificationDropdown.svelte @@ -13,8 +13,7 @@ type Props = { let { notifications, onMarkRead, onMarkAllRead, onClose }: Props = $props(); -function handleViewAll(e: MouseEvent) { - e.preventDefault(); +function handleViewAll() { onClose(); goto('/aktivitaeten'); } @@ -134,12 +133,12 @@ function handleViewAll(e: MouseEvent) { {/if}
- {m.chronik_view_all()} - +
diff --git a/frontend/src/lib/notification/NotificationDropdown.svelte.test.ts b/frontend/src/lib/notification/NotificationDropdown.svelte.test.ts index e72573be..3c410403 100644 --- a/frontend/src/lib/notification/NotificationDropdown.svelte.test.ts +++ b/frontend/src/lib/notification/NotificationDropdown.svelte.test.ts @@ -6,7 +6,10 @@ import NotificationDropdown from './NotificationDropdown.svelte'; vi.mock('$app/navigation', () => ({ goto: vi.fn() })); -afterEach(cleanup); +afterEach(() => { + cleanup(); + vi.clearAllMocks(); +}); const makeNotification = (overrides: Record = {}) => ({ id: 'n1', @@ -156,7 +159,7 @@ describe('NotificationDropdown', () => { expect(onMarkAllRead).toHaveBeenCalledOnce(); }); - it('calls onClose when the view-all link is clicked', async () => { + it('calls onClose when the view-all button is clicked', async () => { const onClose = vi.fn(); render(NotificationDropdown, { props: { @@ -167,11 +170,23 @@ describe('NotificationDropdown', () => { } }); - const viewAllLink = page.getByRole('link', { name: /alle aktivitäten|view all/i }); - await expect.element(viewAllLink).toHaveAttribute('href', '/aktivitaeten'); - await viewAllLink.click(); + await page.getByRole('button', { name: /alle aktivitäten|view all/i }).click(); expect(onClose).toHaveBeenCalledOnce(); + }); + + it('navigates to /aktivitaeten when the view-all button is clicked', async () => { + render(NotificationDropdown, { + props: { + notifications: [], + onMarkRead: () => {}, + onMarkAllRead: () => {}, + onClose: () => {} + } + }); + + await page.getByRole('button', { name: /alle aktivitäten|view all/i }).click(); + expect(goto).toHaveBeenCalledWith('/aktivitaeten'); });