diff --git a/gerbil-manager-web/e2e/bestand.spec.ts b/gerbil-manager-web/e2e/bestand.spec.ts index acdf559..2718a70 100644 --- a/gerbil-manager-web/e2e/bestand.spec.ts +++ b/gerbil-manager-web/e2e/bestand.spec.ts @@ -27,3 +27,17 @@ test('Toggle „Externe Ahnen einblenden“ zeigt externe Tiere mit Extern-Marki // Der Bestand bleibt weiterhin sichtbar. await expect(page.locator('.gerbil-row', { hasText: 'Krümel' })).toBeVisible() }) + +test('Bearbeiten-Formular kann ein Tier als extern markieren (Bestand-Häkchen)', async ({ page }) => { + skipUnlessMock() + // Krümel gehört zum Bestand -> Häkchen entfernen und speichern. + await page.goto('/rennmaeuse/kruemel/bearbeiten') + const check = page.getByRole('checkbox', { name: t.form.isResidentLabel }) + await expect(check).toBeChecked() + await check.uncheck() + await page.getByRole('button', { name: t.form.save }).click() + + // Auf der Detailseite ist Krümel jetzt als „Extern“ markiert. + await expect(page.getByRole('heading', { name: 'Krümel' })).toBeVisible() + await expect(page.getByText(t.externalBadge, { exact: true })).toBeVisible() +}) diff --git a/gerbil-manager-web/src/pages/GerbilFormPage.tsx b/gerbil-manager-web/src/pages/GerbilFormPage.tsx index d6750f0..f3eea99 100644 --- a/gerbil-manager-web/src/pages/GerbilFormPage.tsx +++ b/gerbil-manager-web/src/pages/GerbilFormPage.tsx @@ -24,6 +24,7 @@ interface FormState { receiverContactId: string genotype: string notes: string + isResident: boolean } const EMPTY: FormState = { @@ -41,6 +42,7 @@ const EMPTY: FormState = { receiverContactId: '', genotype: '', notes: '', + isResident: true, } function formFromGerbil(g: { @@ -58,6 +60,7 @@ function formFromGerbil(g: { receiverContactId: string | null genotype: string | null notes: string | null + isResident?: boolean | null }): FormState { return { name: g.name, @@ -74,6 +77,7 @@ function formFromGerbil(g: { receiverContactId: g.receiverContactId ?? '', genotype: g.genotype ?? '', notes: g.notes ?? '', + isResident: g.isResident ?? true, } } @@ -166,6 +170,7 @@ export default function GerbilFormPage() { receiverContactId: nn(form.receiverContactId), genotype: nn(form.genotype), notes: nn(form.notes), + isResident: form.isResident, } const result = await mutation.run(body) if (result.ok) navigate(`/rennmaeuse/${result.value.id}`) @@ -355,6 +360,15 @@ export default function GerbilFormPage() {