import { describe, expect, test } from "bun:test"; import { sprechtextNormalisieren as n } from "../src/sprechtext.ts"; describe("Postleitzahl", () => { test("Hausnummer, Komma, PLZ, Ort", () => { expect(n("an die 42i GmbH, Bergstraße 7, 83646 Bad Tölz.")).toBe("an die 42i GmbH, Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz."); }); test("ohne Komma", () => { expect(n("Bergstraße 7 83646 Bad Tölz")).toBe("Bergstraße 7; Postleitzahl 8 3 6 4 6, Bad Tölz"); }); test("mehrteiliger Ortsname", () => { expect(n("Adresse: 60311 Frankfurt am Main, Zeil 1")).toBe("Adresse: Postleitzahl 6 0 3 1 1, Frankfurt am Main, Zeil 1"); }); test("Ort mit Bindestrich", () => { expect(n("in 40210 Düsseldorf-Stadtmitte")).toBe("in; Postleitzahl 4 0 2 1 0, Düsseldorf-Stadtmitte"); }); }); describe("bleibt unberuehrt", () => { test("Betrag mit Tausenderpunkt", () => { const t = "Ihre Rechnung über 1.248,50 Euro ist offen."; expect(n(t)).toBe(t); }); test("fuenfstelliger Betrag mit Euro", () => { const t = "Der Kaufpreis beträgt 83646 Euro im Jahr 2026."; expect(n(t)).toBe(t); }); test("Datum und Jahreszahl", () => { const t = "vom 14. August 2026 bis zum 30. September 2026"; expect(n(t)).toBe(t); }); test("PLZ am Satzanfang", () => { expect(n("83646 Bad Tölz ist der Sitz.")).toBe("Postleitzahl 8 3 6 4 6, Bad Tölz ist der Sitz."); }); test("Kundennummer ohne Ortsnamen", () => { const t = "Kundennummer 48213 bitte bereithalten."; expect(n(t)).toBe(t); }); test("Teil einer laengeren Zahl", () => { const t = "Rechnungsnummer 2026-83646 Berlin"; expect(n(t)).toBe(t); }); });