import { describe, expect, it } from "vitest"; import { initialTreatmentValues } from "@/app/(app)/treatments/new/treatment-form-values"; import { applyPrefill, formatPrefillDate } from "./prefill"; import type { TreatmentPrefill } from "./types"; const prefill: TreatmentPrefill = { sourceTreatmentId: "t-1", sourceDate: "2026-08-12T00:00:00.000Z", product: "Oxuvar", activeIngredient: "Oxalsäure", withdrawalPeriodDays: 0, supplier: "Imkereibedarf Muster", purchaseProof: "Rechnung 4711", prescribingVet: "Dr. Biene", }; describe("applyPrefill", () => { it("fills empty fields only", () => { const values = { ...initialTreatmentValues("c-1"), activeIngredient: "Ameisensäure" }; const result = applyPrefill(values, prefill); expect(result.values.activeIngredient).toBe("Ameisensäure"); expect(result.values.supplier).toBe("Imkereibedarf Muster"); expect(result.filled).not.toContain("activeIngredient"); expect(result.filled).toEqual([ "withdrawalPeriodDays", "supplier", "purchaseProof", "prescribingVet", ]); expect(values.supplier).toBe(""); }); it('fills withdrawalPeriodDays 0 as "0"', () => { const result = applyPrefill(initialTreatmentValues("c-1"), prefill); expect(result.values.withdrawalPeriodDays).toBe("0"); expect(result.filled).toContain("withdrawalPeriodDays"); }); it("does not fill null values", () => { const result = applyPrefill(initialTreatmentValues("c-1"), { ...prefill, activeIngredient: null, withdrawalPeriodDays: null, supplier: null, }); expect(result.values.activeIngredient).toBe(""); expect(result.values.withdrawalPeriodDays).toBe(""); expect(result.filled).toEqual(["purchaseProof", "prescribingVet"]); }); it("treats whitespace-only values as empty", () => { const values = { ...initialTreatmentValues("c-1"), supplier: " " }; expect(applyPrefill(values, prefill).filled).toContain("supplier"); }); }); describe("formatPrefillDate", () => { it("writes the calendar day as TT.MM.JJJJ without a time zone shift", () => { expect(formatPrefillDate("2026-08-12T00:00:00.000Z")).toBe("12.08.2026"); }); });