diff --git a/frontend/src/lib/geschichte/GeschichtenCard.svelte b/frontend/src/lib/geschichte/GeschichtenCard.svelte index 2fec7b39..f7f71166 100644 --- a/frontend/src/lib/geschichte/GeschichtenCard.svelte +++ b/frontend/src/lib/geschichte/GeschichtenCard.svelte @@ -4,10 +4,10 @@ import type { components } from '$lib/generated/api'; import { plainExcerpt } from '$lib/shared/utils/extractText'; import { formatDate } from '$lib/shared/utils/date'; -type Geschichte = components['schemas']['Geschichte']; +type GeschichteSummary = components['schemas']['GeschichteSummary']; interface Props { - geschichten: Geschichte[]; + geschichten: GeschichteSummary[]; personId: string; personName: string; canWrite: boolean; @@ -18,12 +18,12 @@ let { geschichten, personId, personName, canWrite }: Props = $props(); const visible = $derived(geschichten.slice(0, 3)); const hasOverflow = $derived(geschichten.length >= 3); -function formatPublishedDate(g: Geschichte): string | null { +function formatPublishedDate(g: GeschichteSummary): string | null { if (!g.publishedAt) return null; return formatDate(g.publishedAt.slice(0, 10), 'short'); } -function authorName(g: Geschichte): string { +function authorName(g: GeschichteSummary): string { const a = g.author; if (!a) return ''; const full = [a.firstName, a.lastName].filter(Boolean).join(' ').trim(); diff --git a/frontend/src/lib/geschichte/GeschichtenCard.svelte.test.ts b/frontend/src/lib/geschichte/GeschichtenCard.svelte.test.ts index f61b4156..9b46a7d8 100644 --- a/frontend/src/lib/geschichte/GeschichtenCard.svelte.test.ts +++ b/frontend/src/lib/geschichte/GeschichtenCard.svelte.test.ts @@ -4,11 +4,11 @@ import { page } from 'vitest/browser'; import GeschichtenCard from './GeschichtenCard.svelte'; import type { components } from '$lib/generated/api'; -type Geschichte = components['schemas']['Geschichte']; +type GeschichteSummary = components['schemas']['GeschichteSummary']; afterEach(cleanup); -const makeGeschichte = (overrides: Record = {}): Geschichte => +const makeGeschichte = (overrides: Record = {}): GeschichteSummary => ({ id: 'g1', title: 'Reise nach Berlin', @@ -16,25 +16,16 @@ const makeGeschichte = (overrides: Record = {}): Geschichte => status: 'PUBLISHED' as const, type: 'STORY' as const, publishedAt: '2026-04-15T10:00:00Z', - createdAt: '2026-04-01T00:00:00Z', - updatedAt: '2026-04-15T10:00:00Z', author: { - id: 'u1', email: 'a@b', firstName: 'Anna', - lastName: 'Schmidt', - color: '#ccc', - enabled: true, - notifyOnReply: false, - notifyOnMention: false, - groups: [], - createdAt: '2024-01-01T00:00:00' + lastName: 'Schmidt' }, ...overrides - }) as Geschichte; + }) as GeschichteSummary; const baseProps = (overrides: Record = {}) => ({ - geschichten: [] as ReturnType[], + geschichten: [] as GeschichteSummary[], personId: 'p-1', personName: 'Anna Schmidt', canWrite: false, diff --git a/frontend/src/routes/geschichten/[id]/+page.svelte b/frontend/src/routes/geschichten/[id]/+page.svelte index b5eebc5c..cacdb2e2 100644 --- a/frontend/src/routes/geschichten/[id]/+page.svelte +++ b/frontend/src/routes/geschichten/[id]/+page.svelte @@ -108,7 +108,7 @@ async function handleDelete() {
  • {m.geschichten_document_link_placeholder()} diff --git a/frontend/src/routes/geschichten/[id]/page.svelte.test.ts b/frontend/src/routes/geschichten/[id]/page.svelte.test.ts index 9bc111c2..a251ea80 100644 --- a/frontend/src/routes/geschichten/[id]/page.svelte.test.ts +++ b/frontend/src/routes/geschichten/[id]/page.svelte.test.ts @@ -19,7 +19,7 @@ const baseGeschichte = (overrides: Record = {}) => ({ email: string; } | null, persons: [] as { id: string; displayName: string }[], - documents: [] as { id: string; title: string; documentDate?: string | null }[], + items: [] as { id: string; documentId?: string; position: number; note?: string }[], ...overrides }); @@ -130,20 +130,21 @@ describe('geschichten/[id] page', () => { await expect.element(page.getByText('Erwähnte Dokumente')).not.toBeInTheDocument(); }); - it('renders the documents section when there are linked documents', async () => { + it('renders the documents section when there are linked journey items', async () => { render(GeschichtePage, { context: new Map([[CONFIRM_KEY, createConfirmService()]]), props: { data: baseData({ geschichte: baseGeschichte({ - documents: [{ id: 'd1', title: 'Brief 1923', documentDate: '1923-04-15' }] + items: [{ id: 'item1', documentId: 'd1', position: 0, note: 'Brief aus 1923' }] }) }) } }); await expect.element(page.getByText('Erwähnte Dokumente')).toBeVisible(); - await expect.element(page.getByText('Brief 1923')).toBeVisible(); + await expect.element(page.getByText('Dokument öffnen')).toBeVisible(); + await expect.element(page.getByText('Brief aus 1923')).toBeVisible(); }); it('renders edit and delete actions when canBlogWrite is true', async () => { diff --git a/frontend/src/routes/geschichten/new/page.svelte.test.ts b/frontend/src/routes/geschichten/new/page.svelte.test.ts index 7e10a727..8e26a1a2 100644 --- a/frontend/src/routes/geschichten/new/page.svelte.test.ts +++ b/frontend/src/routes/geschichten/new/page.svelte.test.ts @@ -21,8 +21,7 @@ const { default: GeschichtenNewPage } = await import('./+page.svelte'); afterEach(cleanup); const baseData = { - initialPersons: [] as { id: string; displayName: string }[], - initialDocuments: [] as { id: string; title: string }[] + initialPersons: [] as { id: string; displayName: string }[] }; describe('geschichten/new page', () => { @@ -53,18 +52,15 @@ describe('geschichten/new page', () => { expect(inputs.length).toBeGreaterThan(0); }); - it('passes initialPersons and initialDocuments through to the editor', async () => { + it('passes initialPersons through to the editor', async () => { render(GeschichtenNewPage, { props: { data: { - initialPersons: [{ id: 'p1', displayName: 'Anna Schmidt' }], - initialDocuments: [{ id: 'd1', title: 'Brief 1923' }] + initialPersons: [{ id: 'p1', displayName: 'Anna Schmidt' }] } } }); - // Both should appear somewhere in the rendered editor await expect.element(page.getByText('Anna Schmidt')).toBeVisible(); - await expect.element(page.getByText('Brief 1923')).toBeVisible(); }); });