Relecture et remaniement du script de tests et de ses dépendances.
This commit is contained in:
parent
b788a3ebe5
commit
cf4802c9d2
File diff suppressed because one or more lines are too long
@ -22,41 +22,41 @@ describe("freeCSV2HTML", () =>
|
||||
expect(converter).toBeInstanceOf(freeCSV2HTML);
|
||||
});
|
||||
|
||||
describe("Setting freeCSV2HTML", () =>
|
||||
describe("Test des données de configuration reçues.", () =>
|
||||
{
|
||||
it("Doit générer une erreur s'il n'y a pas d'élément dans la page pour l'id fourni pour afficher les données.", () =>
|
||||
{
|
||||
expect( () => { return converter.datasViewElt={ id:"dontExistId" }; }).toThrowError(errors.elementNotFound+"dontExistId");
|
||||
expect(() => { return converter.datasViewElt={ id:"dontExist" }; }).toThrowError(errors.elementNotFound+"dontExist");
|
||||
});
|
||||
|
||||
it("Ne doit pas générer une erreur s'il y a bien un élément dans la page pour l'id fourni pour afficher les données.", () =>
|
||||
{
|
||||
expect( () => { return converter.datasViewElt={ id:"datas" }; }).not.toThrowError();
|
||||
expect(() => { return converter.datasViewElt={ id:"datas" }; }).not.toThrowError();
|
||||
});
|
||||
|
||||
it("Doit générer une erreur s'il n'y a pas d'éléments dans la page pour chaque id fourni pour afficher un des sélecteurs.", () =>
|
||||
it("Doit générer une erreur s'il n'y a pas un élément dans la page pour chaque id fourni pour afficher un des sélecteurs.", () =>
|
||||
{
|
||||
expect( () =>{ return converter.datasSelectors=[{ colCSV:2, id:"selector2"},{ colCSV:3, id:"selector3"}]; }).toThrowError(errors.elementNotFound+"selector3");
|
||||
expect(() =>{ return converter.datasSelectors=[{ colCSV:2, id:"selector2" },{ colCSV:3, id:"selector3" }]; }).toThrowError(errors.elementNotFound+"selector3");
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si tous les numéros de colonne des sélecteurs ne sont pas des nombres naturels.", () =>
|
||||
{
|
||||
expect( () => { return converter.datasSelectors=[{ colCSV:2.3, id:"selector1"},{ colCSV:3, id:"selector2"}]; }).toThrowError(errors.needNaturalNumber);
|
||||
expect( () => { return converter.datasSelectors=[{ colCSV:2, id:"selector1"},{ colCSV:-1, id:"selector2"}]; }).toThrowError(errors.needNaturalNumber);
|
||||
expect(() => { return converter.datasSelectors=[{ colCSV:2.3, id:"selector1" },{ colCSV:3, id:"selector2" }]; }).toThrowError(errors.needNaturalNumber);
|
||||
expect(() => { return converter.datasSelectors=[{ colCSV:2, id:"selector1" },{ colCSV:-1, id:"selector2" }]; }).toThrowError(errors.needNaturalNumber);
|
||||
});
|
||||
|
||||
it("Ne doit pas générer une erreur si les informations fournies pour les sélecteurs sont correctes.", () =>
|
||||
it("Ne doit pas générer une erreur si toutes les informations fournies pour les sélecteurs sont correctes.", () =>
|
||||
{
|
||||
expect( () => { return converter.datasSelectors=[{ colCSV:0, id:"selector1"},{ colCSV:3, id:"selector2"}]; }).not.toThrowError();
|
||||
expect(() => { return converter.datasSelectors=[{ colCSV:0, id:"selector1" },{ colCSV:3, id:"selector2" }]; }).not.toThrowError();
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si l'url fournie pour le fichier de données est vide.", () =>
|
||||
{
|
||||
expect( () => { return converter.datasSourceUrl=" "; }).toThrowError(errors.needUrl);
|
||||
expect(() => { return converter.datasSourceUrl=" "; }).toThrowError(errors.needUrl);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Running freeCSV2HTML", () =>
|
||||
describe("Parsage du fichier et création du tableau de données", () =>
|
||||
{
|
||||
it("Doit générer une erreur si au moins un des deux paramètres nécessaires au fonctionnement n'est pas fourni.", async () =>
|
||||
{
|
||||
@ -68,21 +68,14 @@ describe("freeCSV2HTML", () =>
|
||||
it("Doit générer une erreur si la lecture du fichier échoue.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/fake.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/dontExist.csv";
|
||||
await expectAsync( converter.parse()).toBeRejectedWith(new Error(errors.parserFail));
|
||||
});
|
||||
|
||||
it("Ne doit pas générer d'erreur si les deux paramètres fournis sont ok.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
await expectAsync( converter.run()).toBeResolved();
|
||||
});
|
||||
|
||||
it("Doit enregistrer la liste des erreurs rencontrées en parsant le fichier.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques-erreurs.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/datas-errors1.csv";
|
||||
await converter.parse();
|
||||
expect(converter.parseErrors.length).toBeGreaterThan(0);
|
||||
});
|
||||
@ -90,15 +83,22 @@ describe("freeCSV2HTML", () =>
|
||||
it("Ne doit enregistrer aucune erreur de lecture si le fichier est ok.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv";
|
||||
await converter.parse();
|
||||
expect(converter.parseErrors.length).toEqual(0);
|
||||
});
|
||||
|
||||
it("Ne doit pas générer d'erreur si les deux paramètres fournis sont ok.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv";
|
||||
await expectAsync( converter.run()).toBeResolved();
|
||||
});
|
||||
|
||||
it("Doit afficher une erreur dans la page si aucune donnée n'a été trouvée dans le fichier.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques-vide.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/nodatas.csv";
|
||||
await converter.run();
|
||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(errors.datasNotFound);
|
||||
@ -107,32 +107,35 @@ describe("freeCSV2HTML", () =>
|
||||
it("Doit afficher un tableau correspondant aux données du fichier csv", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv";
|
||||
await converter.run();
|
||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTML);
|
||||
});
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si au moins un des numéros de colonne des sélecteurs ne correspond pas à une des colonne du fichier.", async () =>
|
||||
describe("Création et action des sélecteurs permettant de filter les données affichées.", () =>
|
||||
{
|
||||
beforeEach( () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv";
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si au moins un des numéros de colonne fournis pour les sélecteurs ne correspond pas à une des colonne du fichier.", async () =>
|
||||
{
|
||||
converter.datasSelectors=[{ colCSV:0, id:"selector1"},{ colCSV:5, id:"selector2"}];
|
||||
await expectAsync(converter.run()).toBeRejectedWith(new Error(errors.selectorFieldNotFound));
|
||||
});
|
||||
|
||||
it("Ne doit pas générer d'erreur si tous les numéros de colonne des sélecteurs correspondent pas à une des colonne du fichier.", async () =>
|
||||
it("Ne doit pas pas générer d'erreur si tous les numéros de colonne des sélecteurs correspondent pas à une des colonne du fichier.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSelectors=[{ colCSV:3, id:"selector1"},{ colCSV:4, id:"selector2"}];
|
||||
await expectAsync(converter.run()).not.toBeRejected();
|
||||
});
|
||||
|
||||
it("Pour chaque sélecteur demandé doit générer un élement <select> listant les valeurs distinctes du fichier, classées par ordre alphabétique.", async () =>
|
||||
it("Pour chaque sélecteur demandé, doit générer un élement <select> listant les valeurs distinctes du fichier, classées par ordre alphabétique.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSelectors=[{ colCSV:3, id:"selector1"},{ colCSV:4, id:"selector2"}];
|
||||
await converter.run();
|
||||
expect(document.getElementById("selector1").innerHTML).toEqual(fixtures.selector1HTML);
|
||||
@ -141,8 +144,6 @@ describe("freeCSV2HTML", () =>
|
||||
|
||||
it("Le choix d'un option dans un des sélecteurs doit modifier le contenu du tableau pour ne garder que les données correspondantes ou les afficher toutes si sélection 0.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSelectors=[{ colCSV:3, id:"selector1"},{ colCSV:4, id:"selector2"}];
|
||||
await converter.run();
|
||||
|
||||
@ -150,29 +151,16 @@ describe("freeCSV2HTML", () =>
|
||||
selectElement.value="4";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelect1);
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLFor1Select);
|
||||
|
||||
selectElement.value="0";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTML);
|
||||
|
||||
selectElement = document.getElementById("CSVDatasSelector1") as HTMLInputElement;
|
||||
selectElement.value="4";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelect2);
|
||||
|
||||
selectElement.value="0";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTML);
|
||||
});
|
||||
|
||||
it("Si plusieurs sélecteurs sont utilisés, seules les données correspondant aux différents choix sont affichées.", async () =>
|
||||
it("Si plusieurs sélecteurs sont utilisés, seules les données correspondant aux différents choix doivent être affichées. Il peut n'y avoir aucun résultat.", async () =>
|
||||
{
|
||||
converter.datasViewElt={ id:"datas" };
|
||||
converter.datasSourceUrl="http://localhost:9876/datas/elements-chimiques.csv";
|
||||
converter.datasSelectors=[{ colCSV:3, id:"selector1"},{ colCSV:4, id:"selector2"}];
|
||||
await converter.run();
|
||||
|
||||
@ -182,11 +170,13 @@ describe("freeCSV2HTML", () =>
|
||||
selectElement.value="1";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelect3);
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLFor2Select);
|
||||
|
||||
selectElement.value="4";
|
||||
selectElement.dispatchEvent(new Event('change'));
|
||||
txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLForSelect4);
|
||||
expect(txtDatasViewsElt).toEqual(fixtures.datasHTMLFor2SelectNone);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in New Issue
Block a user