Adaptation du code à la nouvelle version de la classe principale du module.

This commit is contained in:
Fabrice PENHOËT 2021-10-26 18:02:43 +02:00
parent 739b83f365
commit 80b90f98a5
7 changed files with 18 additions and 20 deletions

View File

@ -18,7 +18,7 @@ export class Pagination implements Paginations
// L'élément du DOM devant recevoir la liste des pages doit exister // L'élément du DOM devant recevoir la liste des pages doit exister
constructor(converter: FreeDatas2HTML, pagesElt: DOMElement, pagesName="Pages") constructor(converter: FreeDatas2HTML, pagesElt: DOMElement, pagesName="Pages")
{ {
if(converter.fields === undefined) if(converter.fields.length === 0)
throw new Error(errors.paginationNeedDatas); throw new Error(errors.paginationNeedDatas);
else else
{ {
@ -114,13 +114,13 @@ export class Pagination implements Paginations
} }
// Création du <select> permettant de se déplacer entre les pages // Création du <select> permettant de se déplacer entre les pages
public pages2HTML(nbTotal:number) : void public pages2HTML() : void
{ {
if (this._selectedValue === undefined || nbTotal <= this._selectedValue) if (this._selectedValue === undefined || this._converter.nbDatasValid <= this._selectedValue)
this.pages.displayElement.eltDOM!.innerHTML=""; // "!" car displayElement testé par le constructeur this.pages.displayElement.eltDOM!.innerHTML=""; // "!" car displayElement testé par le constructeur
else else
{ {
let nbPages=Math.ceil(nbTotal/this._selectedValue); let nbPages=Math.ceil(this._converter.nbDatasValid/this._selectedValue);
let selectorsHTML="<label for='freeDatas2HTMLPagesSelector'>"+this.pages.name+"</label><select name='freeDatas2HTMLPagesSelector' id='freeDatas2HTMLPagesSelector'>"; let selectorsHTML="<label for='freeDatas2HTMLPagesSelector'>"+this.pages.name+"</label><select name='freeDatas2HTMLPagesSelector' id='freeDatas2HTMLPagesSelector'>";
this.pages.values=[]; this.pages.values=[];
for(let j=1; j <= nbPages; j++) for(let j=1; j <= nbPages; j++)

View File

@ -17,7 +17,7 @@ export class Selector implements Selectors
// Le champ duquel le sélecteur tire ses données doit exister ? // Le champ duquel le sélecteur tire ses données doit exister ?
constructor(converter: FreeDatas2HTML, datasFieldNb: number, elt: DOMElement, separator?: string) constructor(converter: FreeDatas2HTML, datasFieldNb: number, elt: DOMElement, separator?: string)
{ {
if(converter.fields === undefined || converter.datas.length === 0) if(converter.fields.length === 0 || converter.datas.length === 0)
throw new Error(errors.filterNeedDatas); throw new Error(errors.filterNeedDatas);
else if(! converter.checkFieldExist(Number(datasFieldNb))) else if(! converter.checkFieldExist(Number(datasFieldNb)))
throw new Error(errors.selectorFieldNotFound); throw new Error(errors.selectorFieldNotFound);

View File

@ -13,7 +13,7 @@ export class SortingField implements SortingFields
// Injection de la classe principale, mais uniquement si les noms des champs ont été importés et affichés correctement // Injection de la classe principale, mais uniquement si les noms des champs ont été importés et affichés correctement
constructor(converter: FreeDatas2HTML, datasFieldNb: number, fieldsDOMSelector: string="th") constructor(converter: FreeDatas2HTML, datasFieldNb: number, fieldsDOMSelector: string="th")
{ {
if(converter.fields === undefined) if(converter.fields.length === 0)
throw new Error(errors.sortingFieldNeedDatas); throw new Error(errors.sortingFieldNeedDatas);
else if(! converter.checkFieldExist(datasFieldNb)) else if(! converter.checkFieldExist(datasFieldNb))
throw new Error(errors.sortingFieldNotFound); throw new Error(errors.sortingFieldNotFound);

View File

@ -56,7 +56,7 @@ const initialise = async () =>
pagination.options2HTML(); pagination.options2HTML();
// Affichage initial // Affichage initial
converter.datasCounter={ id:"compteur" }; converter.datasCounterElt={ id:"compteur" };
await converter.run(); await converter.run();
// Création d'outils permettant de filtrer les données des champs de données // Création d'outils permettant de filtrer les données des champs de données

View File

@ -38,7 +38,7 @@ const initialise = async () =>
pagination.options2HTML(); pagination.options2HTML();
// Affichage initial // Affichage initial
converter.datasCounter={ id:"compteur" }; converter.datasCounterElt={ id:"compteur" };
await converter.run(); await converter.run();
// Création d'un filtre par auteur : // Création d'un filtre par auteur :

View File

@ -39,7 +39,7 @@ const initialise = async () =>
pagination.options2HTML(); pagination.options2HTML();
// Affichage initial // Affichage initial
converter.datasCounter={ id:"compteur" }; converter.datasCounterElt={ id:"compteur" };
await converter.run(); await converter.run();
// Création d'un filtre par auteur : // Création d'un filtre par auteur :

View File

@ -149,42 +149,40 @@ describe("Test de la pagination.", () =>
it("S'il n'y a pas de pagination définie, le sélecteur de pages ne doit pas être proposé.", () => it("S'il n'y a pas de pagination définie, le sélecteur de pages ne doit pas être proposé.", () =>
{ {
pagination.selectedValue=undefined; pagination.selectedValue=undefined;
pagination.pages2HTML(118); pagination.pages2HTML();
const selectElement=document.getElementById("pages").innerHTML; const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(""); expect(selectElement).toEqual("");
}); });
it("S'il n'y pa plus de données que le nombre de lignes par page, le sélecteur de pages ne doit pas être proposé.", () => it("S'il n'y pa plus de données que le nombre de lignes par page, le sélecteur de pages ne doit pas être proposé.", () =>
{ {
pagination.pages2HTML(10); pagination.selectedValue=500;
pagination.pages2HTML();
const selectElement=document.getElementById("pages").innerHTML; const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(""); expect(selectElement).toEqual("");
}); });
it("Si il y a plus de données que le nombre de lignes autorisées par page, un <select> listant les pages doit être affiché.", () => it("S'il y a plus de données que le nombre de lignes autorisées par page, un <select> listant les pages doit être affiché.", () =>
{ {
pagination.pages2HTML(11); pagination.pages2HTML();
let selectElement=document.getElementById("pages").innerHTML; const selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(fixtures.selectorFor2Pages);
pagination.pages2HTML(118);
selectElement=document.getElementById("pages").innerHTML;
expect(selectElement).toEqual(fixtures.selectorForManyPages); expect(selectElement).toEqual(fixtures.selectorForManyPages);
}); });
it("Après chaque actualisation de la liste de pages, la valeur sélectionnée est remise à 0.", () => it("Après chaque actualisation de la liste de pages, la valeur sélectionnée est remise à 0.", () =>
{ {
pagination.pages2HTML(11); pagination.pages2HTML();
let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement; let selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
expect(pagination.pages.selectedValue).toEqual(1); expect(pagination.pages.selectedValue).toEqual(1);
pagination.pages.selectedValue=2; pagination.pages.selectedValue=2;
pagination.pages2HTML(11); pagination.pages2HTML();
selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement; selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
expect(pagination.pages.selectedValue).toEqual(1); expect(pagination.pages.selectedValue).toEqual(1);
}); });
it("La manipulation du sélecteur de pages doit enregistrer la valeur sélectionnée et appeler la fonction actualisant l'affichage.", () => it("La manipulation du sélecteur de pages doit enregistrer la valeur sélectionnée et appeler la fonction actualisant l'affichage.", () =>
{ {
pagination.pages2HTML(31); pagination.pages2HTML();
spyOn(converter, "refreshView"); spyOn(converter, "refreshView");
const selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement; const selectElement=document.getElementById("freeDatas2HTMLPagesSelector") as HTMLInputElement;
selectElement.value="4"; selectElement.value="4";