diff --git a/frontend/src/routes/admin/ocr/OcrModelsTable.svelte b/frontend/src/routes/admin/ocr/OcrModelsTable.svelte index 8da78b5e..c99f54e4 100644 --- a/frontend/src/routes/admin/ocr/OcrModelsTable.svelte +++ b/frontend/src/routes/admin/ocr/OcrModelsTable.svelte @@ -41,10 +41,10 @@ let { {#each senderModels as model (model.id)} - + {personNames[model.personId] ?? model.personId} @@ -58,10 +58,10 @@ let { {model.correctedLinesAtTraining} - + {m.ocr_table_details()} diff --git a/frontend/src/routes/admin/ocr/[personId]/+page.server.ts b/frontend/src/routes/admin/ocr/[personId]/+page.server.ts index 70b1fc47..a95076c5 100644 --- a/frontend/src/routes/admin/ocr/[personId]/+page.server.ts +++ b/frontend/src/routes/admin/ocr/[personId]/+page.server.ts @@ -14,5 +14,5 @@ export const load: PageServerLoad = async ({ params, fetch }) => { throw error(result.response.status, getErrorMessage(code)); } - return { history: result.data! }; + return { history: result.data!, personId: params.personId }; }; diff --git a/frontend/src/routes/admin/ocr/[personId]/+page.svelte b/frontend/src/routes/admin/ocr/[personId]/+page.svelte index d7302d52..8392c841 100644 --- a/frontend/src/routes/admin/ocr/[personId]/+page.svelte +++ b/frontend/src/routes/admin/ocr/[personId]/+page.svelte @@ -3,8 +3,8 @@ import type { PageData } from './$types'; import TrainingHistory from '$lib/components/TrainingHistory.svelte'; import * as m from '$lib/paraglide/messages.js'; -let { data, params }: { data: PageData; params: { personId: string } } = $props(); -const personName = $derived(data.history.personNames?.[params.personId] ?? 'Unknown'); +let { data }: { data: PageData } = $props(); +const personName = $derived(data.history.personNames?.[data.personId] ?? 'Unknown');
diff --git a/frontend/src/routes/admin/ocr/[personId]/page.svelte.spec.ts b/frontend/src/routes/admin/ocr/[personId]/page.svelte.spec.ts new file mode 100644 index 00000000..d06445db --- /dev/null +++ b/frontend/src/routes/admin/ocr/[personId]/page.svelte.spec.ts @@ -0,0 +1,36 @@ +import { afterEach, describe, it, expect } from 'vitest'; +import { cleanup, render } from 'vitest-browser-svelte'; +import { page } from 'vitest/browser'; +import Page from './+page.svelte'; + +afterEach(cleanup); + +describe('[personId] page', () => { + it('shows person name from personNames map', async () => { + const personId = '123e4567-e89b-12d3-a456-426614174000'; + render(Page, { + data: { + personId, + history: { + runs: [], + personNames: { [personId]: 'Anna Müller' } + } + } + }); + await expect.element(page.getByRole('heading', { level: 1 })).toHaveTextContent('Anna Müller'); + }); + + it('falls back to Unknown when person name is missing', async () => { + const personId = '123e4567-e89b-12d3-a456-426614174000'; + render(Page, { + data: { + personId, + history: { + runs: [], + personNames: {} + } + } + }); + await expect.element(page.getByRole('heading', { level: 1 })).toHaveTextContent('Unknown'); + }); +});