Tests de la première version
This commit is contained in:
parent
a7f1ecc5f9
commit
09e5c1a074
5
tests/fixtures.js
Normal file
5
tests/fixtures.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,47 +1,116 @@
|
|||||||
import { freeCSV2HTML } from "../src/freeCSV2HTML";
|
import { freeCSV2HTML } from "../src/freeCSV2HTML";
|
||||||
const errors=require("../src/errors.js");
|
const errors=require("../src/errors.js");
|
||||||
|
const fixtures=require("./fixtures.js");
|
||||||
|
|
||||||
describe("freeCSV2HTML", function()
|
describe("freeCSV2HTML", () =>
|
||||||
{
|
{
|
||||||
let converter: freeCSV2HTML;
|
let converter: freeCSV2HTML;
|
||||||
const fixture="<div id='fixture'><div id='selector1'></div><div id='selector2'></div><div id='datas'></div></div>";
|
|
||||||
|
|
||||||
beforeEach(function()
|
beforeEach( () =>
|
||||||
{
|
{
|
||||||
converter=new freeCSV2HTML();
|
converter=new freeCSV2HTML();
|
||||||
document.body.insertAdjacentHTML('afterbegin', fixture);
|
document.body.insertAdjacentHTML('afterbegin', fixtures.datasViewEltHTML);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(function()
|
afterEach( () =>
|
||||||
{
|
{
|
||||||
document.body.removeChild(document.getElementById('fixture'));
|
document.body.removeChild(document.getElementById('fixture'));
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Doit être une instance de freeCSV2HTML", function()
|
it("Doit avoir créé une instance de freeCSV2HTML", () =>
|
||||||
{
|
{
|
||||||
expect(converter).toBeInstanceOf(freeCSV2HTML);
|
expect(converter).toBeInstanceOf(freeCSV2HTML);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("Setting freeCSV2HTML", function()
|
describe("Setting freeCSV2HTML", () =>
|
||||||
{
|
{
|
||||||
it("Doit générer une erreur s'il n'y a pas d'élément dans la page pour l'id fourni pour recevoir les données.", function()
|
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(function() { return converter.datasEltId="dontExistId"; }).toThrowError(errors.elementNotFound+"dontExistId");
|
expect( () => { return converter.datasViewElt={ id:"dontExistId" }; }).toThrowError(errors.elementNotFound+"dontExistId");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Ne doit pas générer une erreur s'il y a un élément dans la page pour l'id fourni pour recevoir les données.", function()
|
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(function() { return converter.datasEltId="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 les ids fournis pour recevoir les sélecteurs.", function()
|
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.", () =>
|
||||||
{
|
{
|
||||||
expect(function() { return converter.datasSelectors=[{ colCSV:2, idElt:"selector2"},{ colCSV:3, idElt:"selector3"}]; }).toThrowError(errors.elementNotFound+"selector3");
|
expect( () =>{ return converter.datasSelectors=[{ colCSV:2, id:"selector2"},{ colCSV:3, id:"selector3"}]; }).toThrowError(errors.elementNotFound+"selector3");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Ne doit pas générer une erreur s'il y a bien un élément dans la page pour chaque id fourni pour recevoir un sélecteur.", function()
|
it("Doit générer une erreur si tous les numéros de colonne des sélecteurs ne sont pas des nombres naturels.", () =>
|
||||||
{
|
{
|
||||||
expect(function() { return converter.datasSelectors=[{ colCSV:2, idElt:"selector1"},{ colCSV:3, idElt:"selector2"}]; }).not.toThrowError();
|
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.", () =>
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe("Running freeCSV2HTML", () =>
|
||||||
|
{
|
||||||
|
it("Doit générer une erreur si au moins un des deux paramètres nécessaires au fonctionnement n'est pas fourni.", async () =>
|
||||||
|
{
|
||||||
|
await expectAsync( converter.run()).toBeRejectedWith(new Error(errors.needDatasElt));
|
||||||
|
converter.datasViewElt={ id:"datas" };
|
||||||
|
await expectAsync( converter.run()).toBeRejectedWith(new Error(errors.needUrl));
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
||||||
|
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";
|
||||||
|
await converter.parse();
|
||||||
|
expect(converter.parseErrors.length).toBeGreaterThan(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
||||||
|
await converter.parse();
|
||||||
|
expect(converter.parseErrors.length).toEqual(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
||||||
|
await converter.run();
|
||||||
|
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||||
|
expect(txtDatasViewsElt).toEqual(errors.datasNotFound);
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
||||||
|
await converter.run();
|
||||||
|
let txtDatasViewsElt=document.getElementById("datas").innerHTML;
|
||||||
|
expect(txtDatasViewsElt).toEqual(fixtures.datasHTML);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
Loading…
Reference in New Issue
Block a user