From 7e86f6e9bcac37fde323e86311592543f88541d1 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 10 May 2026 00:27:41 +0200 Subject: [PATCH] test(admin/system): cover the system page render branches Backfill cards rendered, both backfill buttons enabled by default, no success banner before any action. Smoke-level coverage of the admin maintenance page. 5 tests covering basic render branches. Refs #496. Co-Authored-By: Claude Sonnet 4.6 --- .../routes/admin/system/page.svelte.test.ts | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 frontend/src/routes/admin/system/page.svelte.test.ts diff --git a/frontend/src/routes/admin/system/page.svelte.test.ts b/frontend/src/routes/admin/system/page.svelte.test.ts new file mode 100644 index 00000000..3ef349bd --- /dev/null +++ b/frontend/src/routes/admin/system/page.svelte.test.ts @@ -0,0 +1,49 @@ +import { describe, it, expect, afterEach } from 'vitest'; +import { cleanup, render } from 'vitest-browser-svelte'; +import { page } from 'vitest/browser'; +import AdminSystemPage from './+page.svelte'; + +afterEach(cleanup); + +describe('admin/system page', () => { + it('renders the backfill versions card', async () => { + render(AdminSystemPage, { props: {} }); + + await expect + .element(page.getByRole('heading', { name: /verlaufsdaten auffüllen/i })) + .toBeVisible(); + }); + + it('renders the backfill versions button enabled by default', async () => { + render(AdminSystemPage, { props: {} }); + + const btn = (await page + .getByRole('button', { name: /jetzt auffüllen/i }) + .element()) as HTMLButtonElement; + expect(btn.disabled).toBe(false); + }); + + it('renders the backfill file-hashes card', async () => { + render(AdminSystemPage, { props: {} }); + + await expect + .element(page.getByRole('heading', { name: /datei-hashes berechnen/i })) + .toBeVisible(); + }); + + it('renders the backfill file-hashes button enabled by default', async () => { + render(AdminSystemPage, { props: {} }); + + const btn = (await page + .getByRole('button', { name: /datei-hashes berechnen/i }) + .element()) as HTMLButtonElement; + expect(btn.disabled).toBe(false); + }); + + it('does not render the backfill success banner before any action', async () => { + render(AdminSystemPage, { props: {} }); + + const banners = document.querySelectorAll('.bg-green-50'); + expect(banners.length).toBe(0); + }); +});