Mutualisation de la méthode testant l'existence d'un élément dans le DOM.
This commit is contained in:
parent
82a2ef3f69
commit
fb9e69a2b7
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "freedatas2html",
|
||||
"version": "0.4.1",
|
||||
"version": "0.4.2",
|
||||
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
|
@ -37,18 +37,24 @@ export class FreeDatas2HTML
|
||||
datasSortedField: SortingFields|undefined;
|
||||
// La Pagination :
|
||||
pagination: Paginations|undefined;
|
||||
|
||||
// Vérifie s'il y a bien un élément dans le DOM pour l'id fourni
|
||||
public static checkInDOMById(checkedElt: DOMElement) : DOMElement
|
||||
{
|
||||
let searchEltInDOM=document.getElementById(checkedElt.id);
|
||||
if(searchEltInDOM === null)
|
||||
throw new Error(errors.converterElementNotFound+checkedElt.id);
|
||||
else
|
||||
{
|
||||
checkedElt.eltDOM=searchEltInDOM;
|
||||
return checkedElt;
|
||||
}
|
||||
}
|
||||
|
||||
// Vérifie que l'élément devant afficher les données existe dans le DOM :
|
||||
set datasViewElt(elt: DOMElement)
|
||||
{
|
||||
let checkContainerExist=document.getElementById(elt.id);
|
||||
if(checkContainerExist === null)
|
||||
throw new Error(errors.converterElementNotFound+elt.id);
|
||||
else
|
||||
{
|
||||
this._datasViewElt.id=elt.id;
|
||||
this._datasViewElt.eltDOM=checkContainerExist;
|
||||
}
|
||||
this._datasViewElt=FreeDatas2HTML.checkInDOMById(elt);
|
||||
}
|
||||
|
||||
// Vérifie que l'url où chercher les données n'est pas vide : inutile si données dans page ou tranmises
|
||||
|
@ -25,14 +25,8 @@ export class Pagination implements Paginations
|
||||
throw new Error(errors.paginationNeedDatas);
|
||||
else
|
||||
{
|
||||
let checkContainerExist=document.getElementById(pagesElt.id);
|
||||
if(checkContainerExist === null)
|
||||
throw new Error(errors.converterElementNotFound+pagesElt.id);
|
||||
else
|
||||
{
|
||||
this._converter=converter;
|
||||
this._pages={ displayElement: { id:pagesElt.id, eltDOM:checkContainerExist }, name: pagesName };
|
||||
}
|
||||
this._pages={ displayElement: FreeDatas2HTML.checkInDOMById(pagesElt), name: pagesName };
|
||||
this._converter=converter;
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,11 +48,7 @@ export class Pagination implements Paginations
|
||||
{
|
||||
if(options !== undefined)
|
||||
{
|
||||
let checkContainerExist=document.getElementById(options.displayElement.id);
|
||||
if(checkContainerExist === null)
|
||||
throw new Error(errors.converterElementNotFound+options.displayElement.id);
|
||||
else
|
||||
options.displayElement.eltDOM=checkContainerExist;
|
||||
options.displayElement=FreeDatas2HTML.checkInDOMById(options.displayElement);
|
||||
if(options.values.length === 0)
|
||||
throw new Error(errors.paginationNeedOptionsValues);
|
||||
for(let i in options.values)
|
||||
|
@ -24,14 +24,7 @@ export class Selector implements Selectors
|
||||
// Vérifie que l'élément devant recevoir le filtre existe dans la page
|
||||
set datasViewElt(elt: DOMElement)
|
||||
{
|
||||
let checkContainerExist=document.getElementById(elt.id);
|
||||
if(checkContainerExist === null)
|
||||
throw new Error(errors.converterElementNotFound+elt.id);
|
||||
else
|
||||
{
|
||||
this._datasViewElt.id=elt.id;
|
||||
this._datasViewElt.eltDOM=checkContainerExist;
|
||||
}
|
||||
this._datasViewElt=FreeDatas2HTML.checkInDOMById(elt);
|
||||
}
|
||||
|
||||
get datasViewElt() : DOMElement
|
||||
|
@ -24,16 +24,18 @@ describe("Test du script central de FreeDatas2HTML", () =>
|
||||
|
||||
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.", () =>
|
||||
it("Doit générer une erreur s'il n'y a pas d'élément dans la page pour l'id fourni.", () =>
|
||||
{
|
||||
expect(() => { return converter.datasViewElt={ id:"dontExist" }; }).toThrowError(errors.converterElementNotFound+"dontExist");
|
||||
expect(() => { return FreeDatas2HTML.checkInDOMById({ id:"dontExist" }); }).toThrowError(errors.converterElementNotFound+"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.", () =>
|
||||
it("S'il y a bien un élément dans la page pour l'id fourni, doit retourner l'élement DOM complété.", () =>
|
||||
{
|
||||
expect(() => { return converter.datasViewElt={ id:"datas" }; }).not.toThrowError();
|
||||
const eltInDOM=document.getElementById("datas");
|
||||
const checkElt=FreeDatas2HTML.checkInDOMById({ id:"datas" });
|
||||
expect(checkElt).toEqual({ id:"datas", eltDOM: eltInDOM });
|
||||
});
|
||||
|
||||
|
||||
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.parserNeedUrl);
|
||||
|
@ -38,22 +38,12 @@ describe("Test de la pagination.", () =>
|
||||
converter=new FreeDatas2HTML();
|
||||
expect(() => { return new Pagination(converter, { id:"pages" }); }).toThrowError(errors.paginationNeedDatas);
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si initialisé en fournissant l'id d'un élément n'existant pas pour recevoir la liste des pages.", () =>
|
||||
{
|
||||
expect(() => { return new Pagination(converter, { id:"dontExist" }); }).toThrowError(errors.converterElementNotFound+"dontExist");
|
||||
});
|
||||
|
||||
|
||||
it("Ne doit pas générer d'erreur si initialisé correctement", () =>
|
||||
{
|
||||
expect(() => { return new Pagination(converter, { id:"pages" }); }).not.toThrowError();
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si l'id fourni pour l'élément devant recevoir le sélecteur de pagination n'existe pas dans le DOM.", () =>
|
||||
{
|
||||
expect(() => { return pagination.options={ displayElement: { id:"dontExist" }, values: [10,20] }; }).toThrowError(errors.converterElementNotFound+"dontExist");
|
||||
});
|
||||
|
||||
it("Doit générer une erreur si les options de pagination sont initialisées avec un tableau de valeurs vide.", () =>
|
||||
{
|
||||
expect(() => { return pagination.options={ displayElement: { id:"paginationOptions" }, values: [] }; }).toThrowError(errors.paginationNeedOptionsValues);
|
||||
|
@ -36,18 +36,6 @@ describe("Test des filtres de données", () =>
|
||||
expect(() => { return new Selector(converter); }).not.toThrowError();
|
||||
});
|
||||
|
||||
it("Doit générer une erreur s'il n'y a aucun élément trouvé dans le DOM pour l'id fourni.", () =>
|
||||
{
|
||||
expect(() => { return converter.datasViewElt={ id:"dontExist" }; }).toThrowError(errors.converterElementNotFound+"dontExist");
|
||||
});
|
||||
|
||||
it("Si un élément est trouvé dans le DOM pour l'id fourni, doit l'accepter.", () =>
|
||||
{
|
||||
selector.datasViewElt={ id:"selector1"};
|
||||
let myContainer=document.getElementById("selector1");
|
||||
expect(selector.datasViewElt).toEqual({ id:"selector1", "eltDOM": myContainer });
|
||||
});
|
||||
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user