test: cover five small index/empty-state route components
Three admin/index pages (groups/tags/users) — each renders a single "Wähle X aus der Liste" prompt for the desktop split-view layout. AuthHeader: brand link href + wordmark. PersonsEmptyState: empty heading + explanation text. 6 tests across five small files. Refs #496. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
22
frontend/src/routes/AuthHeader.svelte.test.ts
Normal file
22
frontend/src/routes/AuthHeader.svelte.test.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { describe, it, expect, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import AuthHeader from './AuthHeader.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('AuthHeader', () => {
|
||||
it('renders the brand link to /', async () => {
|
||||
render(AuthHeader, { props: {} });
|
||||
|
||||
await expect
|
||||
.element(page.getByRole('link', { name: /familienarchiv/i }))
|
||||
.toHaveAttribute('href', '/');
|
||||
});
|
||||
|
||||
it('renders the brand wordmark', async () => {
|
||||
render(AuthHeader, { props: {} });
|
||||
|
||||
await expect.element(page.getByText('Familienarchiv')).toBeVisible();
|
||||
});
|
||||
});
|
||||
14
frontend/src/routes/admin/groups/page.svelte.test.ts
Normal file
14
frontend/src/routes/admin/groups/page.svelte.test.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { describe, it, expect, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import AdminGroupsIndexPage from './+page.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('admin/groups index page', () => {
|
||||
it('renders the select-from-list prompt', async () => {
|
||||
render(AdminGroupsIndexPage, { props: {} });
|
||||
|
||||
await expect.element(page.getByText('Wähle eine Gruppe aus der Liste.')).toBeVisible();
|
||||
});
|
||||
});
|
||||
14
frontend/src/routes/admin/tags/page.svelte.test.ts
Normal file
14
frontend/src/routes/admin/tags/page.svelte.test.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { describe, it, expect, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import AdminTagsIndexPage from './+page.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('admin/tags index page', () => {
|
||||
it('renders the select-from-list prompt', async () => {
|
||||
render(AdminTagsIndexPage, { props: {} });
|
||||
|
||||
await expect.element(page.getByText('Wähle ein Schlagwort aus der Liste.')).toBeVisible();
|
||||
});
|
||||
});
|
||||
14
frontend/src/routes/admin/users/page.svelte.test.ts
Normal file
14
frontend/src/routes/admin/users/page.svelte.test.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { describe, it, expect, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import AdminUsersIndexPage from './+page.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('admin/users index page', () => {
|
||||
it('renders the select-from-list prompt', async () => {
|
||||
render(AdminUsersIndexPage, { props: {} });
|
||||
|
||||
await expect.element(page.getByText('Wähle einen Benutzer aus der Liste.')).toBeVisible();
|
||||
});
|
||||
});
|
||||
15
frontend/src/routes/persons/PersonsEmptyState.svelte.test.ts
Normal file
15
frontend/src/routes/persons/PersonsEmptyState.svelte.test.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { describe, it, expect, afterEach } from 'vitest';
|
||||
import { cleanup, render } from 'vitest-browser-svelte';
|
||||
import { page } from 'vitest/browser';
|
||||
import PersonsEmptyState from './PersonsEmptyState.svelte';
|
||||
|
||||
afterEach(cleanup);
|
||||
|
||||
describe('PersonsEmptyState', () => {
|
||||
it('renders the empty heading and explanation text', async () => {
|
||||
render(PersonsEmptyState, { props: {} });
|
||||
|
||||
await expect.element(page.getByText('Keine Personen gefunden.')).toBeVisible();
|
||||
await expect.element(page.getByText('Versuchen Sie einen anderen Suchbegriff.')).toBeVisible();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user