test: cover enrich/done and documents/bulk-edit page branches

enrich/done: heading, body, both CTA links.

documents/bulk-edit: empty-store onMount redirect to /documents,
loading spinner during in-flight fetch, error banner on backend error
code, error banner on fetch rejection. Mocks fetch via vi.spyOn so the
async branches are exercised without a real backend.

Refs #496.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-09 21:19:37 +02:00
parent 2e9ad7e0be
commit cd14f9cd6c
2 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
import { describe, it, expect, afterEach } from 'vitest';
import { cleanup, render } from 'vitest-browser-svelte';
import { page } from 'vitest/browser';
import EnrichDonePage from './+page.svelte';
afterEach(cleanup);
describe('enrich/done page', () => {
it('renders the success heading', async () => {
render(EnrichDonePage, { props: {} });
await expect.element(page.getByRole('heading', { name: /alles erledigt/i })).toBeVisible();
});
it('renders the body message', async () => {
render(EnrichDonePage, { props: {} });
await expect.element(page.getByText('Alle Dokumente wurden bearbeitet.')).toBeVisible();
});
it('links the primary CTA to the home page', async () => {
render(EnrichDonePage, { props: {} });
await expect
.element(page.getByRole('link', { name: /zurück zur übersicht/i }))
.toHaveAttribute('href', '/');
});
it('links the secondary CTA back to /enrich', async () => {
render(EnrichDonePage, { props: {} });
await expect
.element(page.getByRole('link', { name: /zurück zur liste/i }))
.toHaveAttribute('href', '/enrich');
});
});