import { describe, it, expect } from "vitest";
import { bodemExtractors } from "./bodemattest";
import type { Brondocument, GeextraheerdeWaarneming } from "../perceptie";

// ── AUT-S1 · Extractor: bodemattest ──────────────────────────────────────────

const extractor = bodemExtractors[0].extractor;
const doc = (tekst: string): Brondocument => ({ ref: "bodem.pdf", bronType: "bodemattest", tekst });
const veld = (ws: GeextraheerdeWaarneming[], p: string) => ws.find((w) => w.veldpad === p);

const TEKST = `BODEMATTEST - OVAM
Refertenummer: 20260212-0345678
Datum aflevering: 12/02/2026
Inhoud van het attest: Deze grond is niet opgenomen in het grondeninformatieregister.`;

describe("bodemExtractor", () => {
  it("is geregistreerd voor het brontype bodemattest", () => {
    expect(bodemExtractors[0].bronType).toBe("bodemattest");
  });

  it("leest refertenummer, datum en inhoud", () => {
    const ws = extractor(doc(TEKST));
    expect(veld(ws, "attesten.bodem.refertenummer")).toMatchObject({ waarde: "20260212-0345678", zekerheid: "zeker" });
    expect(veld(ws, "attesten.bodem.datum")?.waarde).toBe("2026-02-12");
    expect(veld(ws, "attesten.bodem.inhoud")?.waarde).toContain("niet opgenomen");
  });

  it("gokt niets bij lege tekst", () => {
    expect(extractor(doc(""))).toEqual([]);
  });
});
