import { render, screen, within } from "@testing-library/react"; import { describe, expect, it } from "vitest"; import { RoleEmploymentFields, type RoleEmploymentValue } from "@/components/employees/RoleEmploymentFields"; // Das Auswahlfeld ist die vierte Liste der Beschäftigtengruppen (neben dem // Enum, den Auswertungen und dem Import — tests/unit/beschaeftigtengruppe). // Fehlt ein Wert hier, ist er schlicht nicht einzugeben, und niemand merkt // es: das Feld sieht vollständig aus. const WERT: RoleEmploymentValue = { workerType: "Angestellte:r", mitarbeiterart: "Standard", collectiveAgreement: "Handel", workDays: ["Mo", "Di", "Mi", "Do", "Fr"], isBetriebsrat: false, hasDienstwagen: false, dienstwagenArt: "Verbrenner", isLateraleFuehrung: false, isCLevel: false, hasKuendigungsschutz: false, kuendigungsschutzBis: "", kuendigungsschutzGrund: "", kuendigungsschutzAb: "", istBeguenstigtBehindert: false, behinderungGrad: "", behinderungAb: "", behinderungBis: "", }; function feld(teil: Partial = {}) { render( {}} />); return screen.getByLabelText("Beschäftigtengruppe"); } describe("Beschäftigtengruppe im Formular", () => { it("bietet alle drei Gruppen an", () => { expect(within(feld()).getAllByRole("option").map((o) => o.textContent)).toEqual([ "Angestellte:r", "Arbeiter:in", "Lehrling", ]); }); it("heisst Beschäftigtengruppe, nicht mehr nach zwei ihrer Werte", () => { // „Angestellte:r / Arbeiter:in" war der Name bis September 2026 — er // wurde falsch, sobald ein dritter Wert dazukam. feld(); expect(screen.queryByLabelText(/Arbeiter:in/)).not.toBeInTheDocument(); }); it("zeigt die gespeicherte Gruppe als gewählt", () => { expect(feld({ workerType: "Lehrling" })).toHaveValue("Lehrling"); }); });