diff --git a/tests/freeDatas2HTMLSpec.ts b/tests/freeDatas2HTMLSpec.ts index 3c31cb2..baabbd9 100644 --- a/tests/freeDatas2HTMLSpec.ts +++ b/tests/freeDatas2HTMLSpec.ts @@ -2,8 +2,9 @@ import { FreeDatas2HTML, Render} from "../src/freeDatas2HTML"; const errors=require("../src/errors.js"); const fixtures=require("./fixtures.js"); -/// Tests à revoir pour ne pas dépendre du bon fonctionnement de Parser et Render. - +/// EN CHANTIER !!! +/// Tests à revoir après avoir fait le tour des autres classes + /* describe("Test du script central de FreeDatas2HTML", () => { let converter: FreeDatas2HTML; @@ -143,8 +144,9 @@ describe("Test du script central de FreeDatas2HTML", () => { converter.datasViewElt={ id:"datas" }; await converter.run(); - const render=new Render(converter); - const htmlForDatas=render.rend2HTML(converter.datas); + const render=new Render(); + render.datas=converter.datas; + const htmlForDatas=render.rend2HTML(); // On ne peut comparer directement au contenu du DOM, // car le navigateur change certains caractères (exemple : ">" devient ">") expect(converter.datasHTML).toEqual(htmlForDatas); @@ -226,4 +228,88 @@ describe("Test du script central de FreeDatas2HTML", () => }); */ -}); \ No newline at end of file +/* +describe("Création et action des sélecteurs liés à la pagination des données.", () => + { + beforeEach( () => + { + pagination.options={ displayElement: { id:"paginationOptions" }, values: [10,20,50,500] , name: "Choix de pagination :" }; + pagination.selectedValue=10; + pagination.options2HTML(); + converter.pagination=pagination; + //converter.refreshView(); + }); + + it("Si une valeur de pagination par défaut fournie, ne doit pas afficher plus de données.", () => + { + let getTR=document.getElementsByTagName("tr"); + expect(getTR.length).toEqual(pagination.selectedValue+1); // 1er TR sert aux titres + }); + + it("La manipulation du sélecteur de pagination doit appeler la fonction actualisant l'affichage.", () => + { + spyOn(converter, "refreshView"); + let selectElement=document.getElementById("freeDatas2HTMLPaginationSelector") as HTMLInputElement; + selectElement.value="2"; + selectElement.dispatchEvent(new Event('change')); + expect(converter.refreshView).toHaveBeenCalledTimes(1); + selectElement.value="0"; + selectElement.dispatchEvent(new Event('change')); + expect(converter.refreshView).toHaveBeenCalledTimes(2); + }); + + it("Si une des options de pagination fournies est sélectionnée, doit afficher le nombre de résultats correspondants.", () => + { + let selectElement=document.getElementById("freeDatas2HTMLPaginationSelector") as HTMLInputElement; + selectElement.value="2"; // = 20 éléments / page + selectElement.dispatchEvent(new Event('change')); + let getTR=document.getElementsByTagName("tr"); + expect(getTR.length).toEqual(21); + selectElement.value="3"; // = 50 éléments / page + selectElement.dispatchEvent(new Event('change')); + getTR=document.getElementsByTagName("tr"); + expect(getTR.length).toEqual(51); + selectElement.value="0"; // = pas de Pagination, on affiche les 118 lignes du fichier + selectElement.dispatchEvent(new Event('change')); + getTR=document.getElementsByTagName("tr"); + expect(getTR.length).toEqual(119); + }); + + it("Si il y a plus de données que le nombre de lignes autorisées par page, un