chore : ajout de test pur le parser de pdf #5

This commit is contained in:
Aurelien
2026-06-28 17:54:45 +02:00
parent 170cb74650
commit 8092ca05e6
5 changed files with 4147 additions and 17 deletions

11
jest.config.js Normal file
View File

@@ -0,0 +1,11 @@
const { createDefaultPreset } = require("ts-jest");
const tsJestTransformCfg = createDefaultPreset().transform;
/** @type {import("jest").Config} **/
module.exports = {
testEnvironment: "node",
transform: {
...tsJestTransformCfg,
},
};

4120
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@
"type": "commonjs",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"test": "jest",
"server": "nodemon ./src/server.ts"
},
"dependencies": {
@@ -22,8 +22,11 @@
},
"devDependencies": {
"@types/express": "^5.0.6",
"@types/jest": "^30.0.0",
"@types/node": "^25.9.3",
"jest": "^30.4.2",
"nodemon": "^3.1.14",
"ts-jest": "^29.4.11",
"ts-node": "^10.9.2",
"typescript": "^6.0.3"
}

25
tests/test_parse.test.ts Normal file
View File

@@ -0,0 +1,25 @@
import pdf_parse from "../src/modules/pdf-parse";
// utilisation de jest pour faire les tests
describe('Test du parser de factures (pdf_parse)', () => {
it('doit correctement parser la facture Metro et extraire les produits', async () => {
// test pour les fichier metro
const cheminPDF = "00(014)0057010856.pdf";
const resultat = await pdf_parse(cheminPDF);
expect(resultat!.brand).toBe("METRO");
expect(resultat!.purchase_date).toBe("22-04-2026");
expect(resultat!.products).toHaveProperty("2015675 SCHWEPPES POMME SLIM 33CL");
});
it('doit correctement parser une facture Auchan', async () => {
// test pour les fichier auchan
const cheminPDF = "2026-02-25 _ Facture AUCHAN _ Soupe.pdf";
const resultat = await pdf_parse(cheminPDF);
expect(resultat!.brand).toBe("Auchan");
expect(resultat!.purchase_date).toBe("25/02/2026");
expect(resultat!.products).toHaveProperty("PURSOUP VELOUTE LEGUMES SOLEIL");
});
});

View File

@@ -7,7 +7,8 @@
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
"skipLibCheck": true,
"types": ["jest", "node"]
},
"include": ["src/**/*"],
"exclude": ["dist", "node_modules"]