test: cover DocumentThumbnail, UnsavedWarningBanner, PersonsStatsBar
DocumentThumbnail: thumbnailUrl→img branch, no-thumbnail→placeholder icon branch, sm vs lg size container class, lazy/async loading attrs. UnsavedWarningBanner: warning text, discard button, callback wiring. PersonsStatsBar: count rendering, singular/plural label switching for both persons and documents (4 branches), zero-count plural fallback. 14 tests across three small primitive files. Refs #496. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import { describe, it, expect, vi, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import UnsavedWarningBanner from './UnsavedWarningBanner.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('UnsavedWarningBanner', () => {
|
||||
it('renders the warning text', async () => {
|
||||
render(UnsavedWarningBanner, { props: { onDiscard: () => {} } });
|
||||
|
||||
await expect.element(page.getByText(/ungespeicherte änderungen/i)).toBeVisible();
|
||||
});
|
||||
|
||||
it('renders the discard action button', async () => {
|
||||
render(UnsavedWarningBanner, { props: { onDiscard: () => {} } });
|
||||
|
||||
await expect.element(page.getByRole('button', { name: /verwerfen/i })).toBeVisible();
|
||||
});
|
||||
|
||||
it('calls onDiscard when the discard button is clicked', async () => {
|
||||
const onDiscard = vi.fn();
|
||||
render(UnsavedWarningBanner, { props: { onDiscard } });
|
||||
|
||||
await page.getByRole('button', { name: /verwerfen/i }).click();
|
||||
|
||||
expect(onDiscard).toHaveBeenCalledOnce();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user