diff --git a/frontend/src/lib/components/TrainingHistory.svelte b/frontend/src/lib/components/TrainingHistory.svelte
index 20f9f355..744e6841 100644
--- a/frontend/src/lib/components/TrainingHistory.svelte
+++ b/frontend/src/lib/components/TrainingHistory.svelte
@@ -117,6 +117,11 @@ function formatCer(cer: number | undefined | null): string {
{m.training_status_running()}
{/if}
+ {#if run.personId && personNames?.[run.personId]}
+ {personNames[run.personId]}
+ {/if}
{run.personId ? m.training_type_personalized() : m.training_type_base()}
diff --git a/frontend/src/lib/components/TrainingHistory.svelte.spec.ts b/frontend/src/lib/components/TrainingHistory.svelte.spec.ts
index 95090ba6..aa212393 100644
--- a/frontend/src/lib/components/TrainingHistory.svelte.spec.ts
+++ b/frontend/src/lib/components/TrainingHistory.svelte.spec.ts
@@ -70,6 +70,7 @@ describe('TrainingHistory — type and person columns', () => {
render(TrainingHistory, { runs: [run], personNames: { 'person-1': 'Karl Müller' } });
await expect.element(page.getByText(/Personalisiert/i)).toBeInTheDocument();
- await expect.element(page.getByText('Karl Müller')).toBeInTheDocument();
+ // Name appears in both the mobile inline span and the desktop table cell
+ await expect.element(page.getByText('Karl Müller').first()).toBeInTheDocument();
});
});
|