import { FreeDatas2HTML, Selector } from "../src/freeDatas2HTML"; const errors=require("../src/errors.js"); const fixtures=require("./fixtures.js"); describe("Test des filtres de données", () => { let converter: FreeDatas2HTML; let selector: Selector; beforeEach( async () => { document.body.insertAdjacentHTML("afterbegin", fixtures.datasViewEltHTML); converter=new FreeDatas2HTML(); converter.datasViewElt={ id:"datas" }; converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv"; await converter.parse(); selector=new Selector(converter); }); afterEach( () => { document.body.removeChild(document.getElementById("fixture")); }); describe("Test des données reçues pour configurer un filtre.", () => { it("Doit générer une erreur, si initialisé sans fournir la liste des champs servant à classer les données.", () => { converter=new FreeDatas2HTML(); expect(() => { return new Selector(converter); }).toThrowError(errors.selectorNeedDatas); }); it("Ne doit pas générer d'erreur, si initialisé avec des données correctes.", () => { expect(() => { return new Selector(converter); }).not.toThrowError(); }); it("Doit générer une erreur, si le numéro de champ fourni n'existe pas dans les données.", () => { expect(() => { return selector.datasFieldNb=9; }).toThrowError(errors.selectorFieldNotFound); expect(() => { return selector.datasFieldNb=-1; }).toThrowError(errors.selectorFieldNotFound); expect(() => { return selector.datasFieldNb=1.1; }).toThrowError(errors.selectorFieldNotFound); }); it("Si le numéro de champ fourni est valide, il doit être accepté.", () => { expect(() => { return selector.datasFieldNb=1; }).not.toThrowError(); selector.datasFieldNb=1; expect(selector.datasFieldNb).toEqual(1); }); it("Si un séparateur vide est fourni pour un filtre, il doit être ignoré.", () => { selector.separator=""; expect(selector.separator).toBeUndefined(); }); }); describe("Création et action des sélecteurs permettant de filter les données affichées.", () => { beforeEach( async () => { document.body.insertAdjacentHTML("afterbegin", fixtures.datasViewEltHTML); converter=new FreeDatas2HTML(); converter.datasViewElt={ id:"datas" }; converter.datasSourceUrl="http://localhost:9876/datas/datas1.csv"; await converter.parse(); selector=new Selector(converter); }); it("Doit générer un élement