Files
demat-facturation/server/invoiceExtractor.test.ts

30 lines
1009 B
TypeScript

import { describe, expect, it } from "vitest";
import { cleanJsonResponse } from "./invoiceExtractor";
describe("cleanJsonResponse", () => {
it("supprime les caractères de contrôle bruts dans une chaîne JSON LLM", () => {
const rawResponse = `{
"pageCount": 1,
"invoiceCount": 1,
"invoices": [{
"supplierName": "Manus AI",
"invoiceNumber": "J6LNGDAL-0021",
"extractedText": "Ligne valide\u0000suite du texte"
}]
}`;
const parsed = JSON.parse(cleanJsonResponse(rawResponse));
expect(parsed.invoices[0].invoiceNumber).toBe("J6LNGDAL-0021");
expect(parsed.invoices[0].extractedText).toBe("Ligne validesuite du texte");
});
it("préserve les retours à la ligne échappés dans les chaînes JSON", () => {
const rawResponse = '{"invoices":[{"extractedText":"Ligne 1\nLigne 2"}] }';
const parsed = JSON.parse(cleanJsonResponse(rawResponse));
expect(parsed.invoices[0].extractedText).toBe("Ligne 1\nLigne 2");
});
});