chore : ajout de test pur le parser de pdf #5
This commit is contained in:
11
jest.config.js
Normal file
11
jest.config.js
Normal 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
4120
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@
|
|||||||
"type": "commonjs",
|
"type": "commonjs",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "jest",
|
||||||
"server": "nodemon ./src/server.ts"
|
"server": "nodemon ./src/server.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -22,8 +22,11 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/express": "^5.0.6",
|
"@types/express": "^5.0.6",
|
||||||
|
"@types/jest": "^30.0.0",
|
||||||
"@types/node": "^25.9.3",
|
"@types/node": "^25.9.3",
|
||||||
|
"jest": "^30.4.2",
|
||||||
"nodemon": "^3.1.14",
|
"nodemon": "^3.1.14",
|
||||||
|
"ts-jest": "^29.4.11",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"typescript": "^6.0.3"
|
"typescript": "^6.0.3"
|
||||||
}
|
}
|
||||||
|
|||||||
25
tests/test_parse.test.ts
Normal file
25
tests/test_parse.test.ts
Normal 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");
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -7,7 +7,8 @@
|
|||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"skipLibCheck": true
|
"skipLibCheck": true,
|
||||||
|
"types": ["jest", "node"]
|
||||||
},
|
},
|
||||||
"include": ["src/**/*"],
|
"include": ["src/**/*"],
|
||||||
"exclude": ["dist", "node_modules"]
|
"exclude": ["dist", "node_modules"]
|
||||||
|
|||||||
Reference in New Issue
Block a user