diff --git a/gerbil-manager-web/e2e/tiere.spec.ts b/gerbil-manager-web/e2e/tiere.spec.ts index 7fb571a..052b865 100644 --- a/gerbil-manager-web/e2e/tiere.spec.ts +++ b/gerbil-manager-web/e2e/tiere.spec.ts @@ -98,6 +98,35 @@ test('Detailseite zeigt Stammdaten + Tab-Inhalte (Gesundheit/Gewicht/Fotos)', as await expect(page.getByText(/85\s*g/)).toBeVisible() }) +test('Detailseite: Wurf-Feld ist ein Link zur Wurf-Detailseite (WURF-LINK)', async ({ page }) => { + skipUnlessMock() + await page.goto('/rennmaeuse/kruemel') + // Krümel hat litterId 'w-kruemel' → Name 'Wurf K' → Link /wuerfe/w-kruemel + const litterLink = page.getByRole('link', { name: 'Wurf K' }) + await expect(litterLink).toBeVisible() + await litterLink.click() + await expect(page.getByRole('heading', { name: 'Wurf K' })).toBeVisible() +}) + +test('Detailseite: Herkunft zeigt originBreeder als Text wenn kein Kontakt (WURF-LINK-Addendum)', async ({ page }) => { + skipUnlessMock() + // Fridolin hat originContactId=null + originBreeder='Zoohandlung Meier' → plain text, kein Link + await page.goto('/rennmaeuse/fridolin') + await expect(page.getByRole('heading', { name: 'Fridolin' })).toBeVisible() + await expect(page.getByText('Zoohandlung Meier')).toBeVisible() + // Kein Link mit diesem Namen — es ist reiner Text + await expect(page.getByRole('link', { name: 'Zoohandlung Meier' })).toBeHidden() +}) + +test('Detailseite: Herkunft zeigt Kontaktlink wenn originContactId gesetzt (WURF-LINK-Addendum)', async ({ page }) => { + skipUnlessMock() + // Krümel hat originContactId='con-meier' → Link /kontakte/con-meier (Priorität vor originBreeder) + await page.goto('/rennmaeuse/kruemel') + const originLink = page.getByRole('link', { name: 'Zoohandlung Meier' }) + await expect(originLink).toBeVisible() + await expect(originLink).toHaveAttribute('href', '/kontakte/con-meier') +}) + test('Tier bearbeiten — Notizen ändern', async ({ page }) => { skipUnlessMock() await page.goto('/rennmaeuse/kruemel/bearbeiten') diff --git a/gerbil-manager-web/src/pages/GerbilDetailPage.tsx b/gerbil-manager-web/src/pages/GerbilDetailPage.tsx index b8208e7..ad3dd66 100644 --- a/gerbil-manager-web/src/pages/GerbilDetailPage.tsx +++ b/gerbil-manager-web/src/pages/GerbilDetailPage.tsx @@ -173,8 +173,22 @@ export default function GerbilDetailPage() { } /> - - + {litterName.get(g.litterId)} + : lookup(litterName, g.litterId) + } + /> + {contactName.get(g.originContactId)} + : (g.originBreeder || null) + } + />