import { render, screen } from "@testing-library/react" import { bogenPfad, hauptleuchte } from "@/lib/anzeige" import { Warnpanel } from "./Warnpanel" import type { Start } from "@/lib/typen" const ruhig: Start["zustand"] = { stufe: "ok", anzahl: 0, waechter_wach: true, stand: 1, update_laeuft: false } describe("bogenPfad", () => { it("beginnt links unten und endet bei vollem Ausschlag rechts unten", () => { expect(bogenPfad(0, 1, 75)).toBe("M 35.05 132.5 A 75 75 0 1 1 164.95 132.5") }) it("zeichnet 45 % Speicher als kleinen Bogen bis kurz vor die Spitze", () => { // 45 % von 240° = 108° → Endwinkel 102°, also knapp links der Senkrechten. expect(bogenPfad(0, 0.45, 75)).toBe("M 35.05 132.5 A 75 75 0 0 1 84.41 21.64") }) it("klemmt Werte außerhalb von 0…1", () => { expect(bogenPfad(-1, 2, 75)).toBe(bogenPfad(0, 1, 75)) }) }) describe("hauptleuchte", () => { it("bleibt ruhig, wenn nichts offen ist", () => { expect(hauptleuchte(ruhig)).toMatchObject({ art: "ok", mitte: "IN ORDNUNG" }) }) it("zeigt Bernstein bei gelben und Rot bei roten Hinweisen", () => { expect(hauptleuchte({ ...ruhig, stufe: "gelb", anzahl: 2 })).toMatchObject({ art: "gelb", mitte: "2 HINWEISE" }) expect(hauptleuchte({ ...ruhig, stufe: "rot", anzahl: 1 })).toMatchObject({ art: "rot", mitte: "1 HINWEIS" }) }) it("meldet einen schweigenden Wächter vor allem anderen", () => { expect(hauptleuchte({ ...ruhig, waechter_wach: false, anzahl: 3, stufe: "rot" }).art).toBe("stumm") }) }) describe("Warnpanel", () => { it("zeigt jede Lampe mit Name und Wert", () => { render( {}} />, ) expect(screen.getByText("Motor")).toBeInTheDocument() expect(screen.getByText("b11057")).toBeInTheDocument() expect(screen.getByText("braucht Aufmerksamkeit")).toBeInTheDocument() expect(screen.getByRole("button", { name: /Achtung 2 HINWEISE/ })).toBeEnabled() }) })