import { describe, expect, it } from "vitest"; import { sortiereWochentage, WOCHENTAGE } from "@/lib/wochentage"; // Der Anlass: „Mo, Di" und „Di, Mo" waren zwei verschiedene gespeicherte // Werte für dieselbe Aussage, weil die Klickreihenfolge mit abgelegt wurde. // change_employee_data vergleicht die Arbeitstage als zusammengefügte // Zeichenkette — wer die Tage nur nachsah und wiederherstellte, erzeugte // damit eine Vertragsänderung in der Personalakte über nichts. describe("sortiereWochentage", () => { it("bringt die Tage in Wochenreihenfolge", () => { expect(sortiereWochentage(["Di", "Mo"])).toEqual(["Mo", "Di"]); expect(sortiereWochentage(["Fr", "Mi", "Mo"])).toEqual(["Mo", "Mi", "Fr"]); }); it("liefert für dieselbe Menge immer dasselbe Ergebnis", () => { // Das ist die eigentliche Zusicherung: die Reihenfolge der Eingabe darf // am Ergebnis nichts ändern, sonst kommt der Scheinunterschied zurück. expect(sortiereWochentage(["Di", "Mo", "Fr"])).toEqual(sortiereWochentage(["Fr", "Di", "Mo"])); }); it("wirft Dubletten weg", () => { expect(sortiereWochentage(["Mo", "Mo", "Di"])).toEqual(["Mo", "Di"]); }); it("lässt die volle Woche unverändert", () => { expect(sortiereWochentage([...WOCHENTAGE])).toEqual([...WOCHENTAGE]); }); it("verschluckt Unbekanntes nicht, sondern hängt es an", () => { // Die Spalte ist ein text[] ohne Prüfung. Was der Massenimport einmal // hineingeschrieben hat, darf eine Sortierung nicht stillschweigend // löschen — sichtbar falsch ist besser als unsichtbar weg. expect(sortiereWochentage(["Fr", "Feiertag", "Mo"])).toEqual(["Mo", "Fr", "Feiertag"]); }); it("kommt mit einer leeren Liste zurecht", () => { expect(sortiereWochentage([])).toEqual([]); }); });