Relecture du script de tests du parseur CSV.
This commit is contained in:
parent
b13be8afeb
commit
d7d9885b2b
@ -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
|
||||
});
|
||||
});
|
||||
|
||||
@ -100,22 +78,22 @@ describe("Tests du parseur de CSV", () =>
|
||||
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);
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user