import { FreeDatas2HTML, Render } from "../src/freeDatas2HTML"; const errors=require("../src/errors.js"); describe("Test du moteur de rendu HTML.", () => { let converter: FreeDatas2HTML; let render: Render; let datas: any[]; beforeEach(() => { converter=new FreeDatas2HTML("CSV"); converter.parser.setRemoteSource({ url:"http://localhost:9876/datas/datas1.csv" }); render=new Render(converter); converter.fields=[ "Z", "Élément", "Symbole", "Famille" ] ; // Les champs des différentes lignes ne sont pas forcément dans le même ordre, dans les champs peuvent être vide ou encore en trop... datas=[{"Z":"1","Élément":"Hydrogène","Symbole":"H","Famille":"Non-métal"},{"Famille":"Gaz noble","Élément":"Hélium","Z":"2","Symbole":"He"},{"Champ ignoré":"Je me champ ignoré !", "Z":"3","Élément":"Lithium","Famille":"Métal alcalin","Symbole":"Li"},{"Z":"4","Élément":"Béryllium","Symbole":"Be","Famille":"","Champ ignoré":"Je me champ ignoré !"}] ; }); it("Doit générer une erreur, si lancé sans fournir une liste des champs.", () => { converter.fields=undefined; expect(() => { return render.rend2HTML(datas) }).toThrowError(errors.renderNeedDatas); }); it("Ne doit pas générer d'erreur, si lancé avec une liste des champs, même s'il n'y a aucune donnée à afficher.", () => { expect(() => { return render.rend2HTML([])}).not.toThrowError(); }); it("Doit retourner le code HTML créé en se basant sur la configuration par défaut, avec ou sans données à afficher.", () => { // La configuration par défaut affiche le nom des champs, même quand il n'y a pas de données : let html=render.rend2HTML([]); expect(html).toEqual("
ZÉlémentSymboleFamille
"); // Avec des données : html=render.rend2HTML(datas); expect(html).toEqual("
ZÉlémentSymboleFamille
1HydrogèneHNon-métal
2HéliumHeGaz noble
3LithiumLiMétal alcalin
4BérylliumBe
"); }); it("Doit retourner un code HTML correspondant à la configuration fournie, avec ou sans données à afficher.", () => { render.settings= { allBegining:"

Pas de noms de champs !

", allEnding:"
", linesBegining:"
", linesEnding:"
", lineBegining:"", dataDisplaying:"
  • #FIELDNAME : #VALUE
  • ", }; let html=render.rend2HTML([]); expect(html).toEqual("

    Pas de noms de champs !

    "); // Avec des données : html=render.rend2HTML(datas); expect(html).toEqual("

    Pas de noms de champs !

    "); }); });