From d7d9885b2b5e125a0dd67a48226bd676b90dd8bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 4 Oct 2021 16:10:54 +0200 Subject: [PATCH] Relecture du script de tests du parseur CSV. --- tests/parserForCSVSpec.ts | 70 ++++++++++++++------------------------- 1 file changed, 25 insertions(+), 45 deletions(-) diff --git a/tests/parserForCSVSpec.ts b/tests/parserForCSVSpec.ts index fd8214c..aeaf5dd 100644 --- a/tests/parserForCSVSpec.ts +++ b/tests/parserForCSVSpec.ts @@ -3,37 +3,15 @@ import { RemoteSource } from "../src/freeDatas2HTMLInterfaces"; import { ParserForCSV as Parser } from "../src/freeDatas2HTMLParserForCSV"; const errors=require("../src/errors.js"); -// Pas de test de Papa Parse, car module externe -// Mais tests d'instanciation et configuration de la classe l'utilisant +// Pas de test de Papa Parse lui-même, car il s'agit d'un module externe. +// Mais tests de la classe l'utilisant. describe("Tests du parseur de CSV", () => { let parser: Parser; - let papaParseOptions: {}; beforeEach( () => { parser=new Parser(); - papaParseOptions = - { - delimiter: "", - newline: "", - quoteChar: '"', - escapeChar: '"', - header: true, - transformHeader: function(field: string, index: number): string { return field.trim() }, - preview: 0, - comments: "", - complete: function(results :any) - { - console.log(results);// peut importe cette partie pour les tests - }, - download: undefined, - downloadRequestHeaders: undefined, - skipEmptyLines:"greedy", - fastMode: undefined, - withCredentials: undefined, - transform: undefined, - } }); it("Doit avoir créé une instance du Parser", () => @@ -52,15 +30,15 @@ describe("Tests du parseur de CSV", () => let myRemoteSource: RemoteSource={ url:"zz" }; parser.datasRemoteSource=myRemoteSource; expect(parser.datasRemoteSource).toEqual(myRemoteSource); - myRemoteSource={ url:"zz", headers: [ { key:"test", value: "coucou"}, { key:"test2", value:"coucou2"}], withCredentials:true }; + myRemoteSource={ url:"zz", headers:[ { key:"test", value:"coucou"}, { key:"test2", value:"coucou2"}], withCredentials:true }; parser.datasRemoteSource=myRemoteSource; expect(parser.datasRemoteSource).toEqual(myRemoteSource); }); it("Doit générer une erreur si la chaîne de données à parser est vide.", () => { - expect(() => { return parser. datas2Parse= "" }).toThrowError(errors.parserNeedDatas); - expect(() => { return parser. datas2Parse= " " }).toThrowError(errors.parserNeedDatas); + expect(() => { return parser.datas2Parse="" }).toThrowError(errors.parserNeedDatas); + expect(() => { return parser.datas2Parse=" " }).toThrowError(errors.parserNeedDatas); }); it("Doit accepter toute chaîne de caractères non vide pour les données à parser.", () => @@ -77,17 +55,17 @@ describe("Tests du parseur de CSV", () => it("Si les données sont directement fournies, cela doit être pris en compte dans les options passées à Papa Parse.", () => { // Idéalement il faudrait tester les paramètres passés à PapaParse - // Mais semble impossible à cause des fonctions callback ? + // Mais semble impossible à cause des fonctions callback ?! spyOn(Papa, "parse"); parser.datas2Parse="datas"; parser.parse(); expect(parser.privateOptions).toEqual( { - header: true, - download: false, - downloadRequestHeaders: undefined, + header:true, + download:false, + downloadRequestHeaders:undefined, skipEmptyLines:"greedy", - withCredentials: undefined + withCredentials:undefined }); }); @@ -95,27 +73,27 @@ describe("Tests du parseur de CSV", () => { // Même remarque, test précédent spyOn(Papa, "parse"); - let myRemoteSource: RemoteSource={ url:"http://localhost:9876/datas/datas1.csv", withCredentials:true }; + let myRemoteSource: RemoteSource={ url:"http://localhost:9876/datas/datas1.csv", withCredentials:true }; parser.datasRemoteSource=myRemoteSource; parser.parse(); expect(parser.privateOptions).toEqual( { - header: true, - download: true, - downloadRequestHeaders: undefined, - skipEmptyLines: "greedy", - withCredentials: true + header:true, + download:true, + downloadRequestHeaders:undefined, + skipEmptyLines:"greedy", + withCredentials:true }); - myRemoteSource={ url:"http://localhost:9876/datas/datas1.csv", headers: [ { key:"test", value: "coucou"}, { key:"test2", value:"coucou2"}] , withCredentials:false }; + myRemoteSource={ url:"http://localhost:9876/datas/datas1.csv", headers:[ { key:"test", value:"coucou"}, { key:"test2", value:"coucou2"}] , withCredentials:false }; parser.datasRemoteSource=myRemoteSource; parser.parse(); expect(parser.privateOptions).toEqual( { - header: true, - download: true, - downloadRequestHeaders: { test:"coucou", test2:"coucou2"}, - skipEmptyLines: "greedy", - withCredentials: false + header:true, + download:true, + downloadRequestHeaders:{ test:"coucou", test2:"coucou2"}, + skipEmptyLines:"greedy", + withCredentials:false }); expect(Papa.parse).toHaveBeenCalledTimes(2); }); @@ -125,10 +103,12 @@ describe("Tests du parseur de CSV", () => parser.datasRemoteSource={ url:"http://localhost:9876/datas/datas1.csv" }; await parser.parse(); expect(parser.parseResults).not.toBeUndefined(); - // Y compris si données fournies bidon : + // Y compris si les données fournies sont bidon : parser=new Parser(); parser.datas2Parse="datas"; await parser.parse(); expect(parser.parseResults).not.toBeUndefined(); + // Mais dans ce cas, des erreurs doivent être reportées : + expect(parser.parseResults.errors.length).not.toEqual(0); }); }); \ No newline at end of file