import { describe, expect, it } from "vitest"; import { attachLocallyExtractedText, buildInvoiceExtractionPrompt, } from "./invoiceExtractor"; describe("contrat compact pour les moteurs à sortie limitée", () => { it("ne demande pas au modèle de recopier le texte complet du PDF", () => { const prompt = buildInvoiceExtractionPrompt({ pageCount: 1, qualityScoreInstruction: "- qualityScore: score", subscriptionInstruction: "- isSubscription: false", keywordsHint: "", }); expect(prompt).not.toContain("- extractedText:"); expect(prompt).toContain("Ne retourne jamais le texte complet du PDF"); }); it("conserve le texte extrait localement après le JSON métier", () => { const text = "texte extrait localement"; const result = attachLocallyExtractedText({ pageCount: 1, invoiceCount: 1, invoices: [{ invoiceDate: "2026-08-28", supplierName: "Fournisseur" }], } as any, text); expect(result.invoices[0].extractedText).toBe(text); expect(result.invoices[0].invoiceDate).toEqual(new Date("2026-08-28")); }); });