import { describe, it, expect } from "vitest";
import { sterMarkeerCommentaren } from "./markering";
import { ontbrekendeGegevensUitTekst } from "./aiAgentInstructies";

describe("sterMarkeerCommentaren", () => {
  it("omringt elke haak met een sterretje voor de Word-sneltoets", () => {
    expect(sterMarkeerCommentaren("[NAKIJKEN]")).toBe("*[*NAKIJKEN*]*");
    expect(sterMarkeerCommentaren("Tekst [AAN TE VULLEN: jaar] verder.")).toBe(
      "Tekst *[*AAN TE VULLEN: jaar*]* verder."
    );
  });

  it("werkt ook bij geneste haken zonder de balans te verstoren", () => {
    expect(sterMarkeerCommentaren("[, met [A COMPLETER]]")).toBe("*[*, met *[*A COMPLETER*]**]*");
  });

  it("laat tekst zonder haken ongemoeid", () => {
    expect(sterMarkeerCommentaren("Gewone zin zonder commentaar.")).toBe("Gewone zin zonder commentaar.");
  });
});

describe("ontbrekendeGegevensUitTekst", () => {
  it("haalt de unieke [AAN TE VULLEN: …]-velden in volgorde uit de tekst", () => {
    const tekst = "A [AAN TE VULLEN: jaar] B [AAN TE VULLEN: prijs] C [AAN TE VULLEN: jaar].";
    expect(ontbrekendeGegevensUitTekst(tekst)).toEqual(["jaar", "prijs"]);
  });

  it("geeft een lege lijst als er niets ontbreekt", () => {
    expect(ontbrekendeGegevensUitTekst("Alles ingevuld.")).toEqual([]);
  });
});
