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:"
",
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("");
+ // Avec des données :
+ html=render.rend2HTML(datas);
+ expect(html).toEqual("Z | Élément | Symbole | Famille |
---|
1 | Hydrogène | H | Non-métal |
2 | Hélium | He | Gaz noble |
3 | Lithium | Li | Métal alcalin |
4 | Béryllium | Be | |
");
+ });
+
+ 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("");
+ // 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