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 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-10 00:27:41 +02:00
parent 524b09810a
commit 7e86f6e9bc

View File

@@ -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);
});
});