From f053a094f32eb38ac3d70f2a2baa5c91c8a3a1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20PENHO=C3=8BT?= Date: Mon, 27 Sep 2021 16:03:05 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20script=20de=20test=20pour=20la?= =?UTF-8?q?=20classe=20Render.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- src/freeDatas2HTMLRender.ts | 2 +- tests/renderSpec.ts | 61 +++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 tests/renderSpec.ts diff --git a/package.json b/package.json index 201fe83..2e8fce9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "freedatas2html", - "version": "0.5.0", + "version": "0.5.1", "description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.", "main": "index.js", "scripts": { diff --git a/src/freeDatas2HTMLRender.ts b/src/freeDatas2HTMLRender.ts index 76b6160..4bc7996 100644 --- a/src/freeDatas2HTMLRender.ts +++ b/src/freeDatas2HTMLRender.ts @@ -11,7 +11,7 @@ export class Render implements DatasRenders allBegining:"", allEnding:"
", fieldsBegining:"", - fieldsEnding:"", + fieldsEnding:"", fieldDisplaying:"#FIELDNAME", linesBegining:"", linesEnding:"", diff --git a/tests/renderSpec.ts b/tests/renderSpec.ts new file mode 100644 index 0000000..c1fd414 --- /dev/null +++ b/tests/renderSpec.ts @@ -0,0 +1,61 @@ +import { FreeDatas2HTML, Render } from "../src/freeDatas2HTML"; + +const errors=require("../src/errors.js"); +const fixtures=require("./fixtures.js"); + +describe("Test du moteur de rendu HTML.", () => +{ + let converter: FreeDatas2HTML; + let render: Render; + let datas: any[]; + + beforeEach(() => + { + converter=new FreeDatas2HTML(); + render=new Render(converter); + converter.parseMetas={ fields : [ "Z", "Élément", "Symbole", "Famille" ] }; + datas=[{"Z":"1","Élément":"Hydrogène","Symbole":"H","Famille":"Non-métal"},{"Z":"2","Élément":"Hélium","Symbole":"He","Famille":"Gaz noble"},{"Z":"3","Élément":"Lithium","Symbole":"Li","Famille":"Métal alcalin"},{"Z":"4","Élément":"Béryllium","Symbole":"Be","Famille":"","Champ ignoré":"Je me sens ignoré !"}] ;// Famille volontairement vide et champ à ignoré pour le dernier + }); + + it("Doit générer une erreur, si lancé sans fournir une liste des champs de données.", () => + { + converter.parseMetas=undefined; + expect(() => { return render.rend2HTML(datas) }).toThrowError(errors.renderNeedDatas); + converter.parseMetas={ delimiter: " "}; + expect(() => { return render.rend2HTML(datas) }).toThrowError(errors.renderNeedDatas); + }); + + it("Ne doit pas générer d'erreur, si lancé avec une liste des champs de données, 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 !

    • Z : 1
    • Élément : Hydrogène
    • Symbole : H
    • Famille : Non-métal
    • Z : 2
    • Élément : Hélium
    • Symbole : He
    • Famille : Gaz noble
    • Z : 3
    • Élément : Lithium
    • Symbole : Li
    • Famille : Métal alcalin
    • Z : 4
    • Élément : Béryllium
    • Symbole : Be
    • Famille :
    "); + }); +}); \ No newline at end of file