Création script de test pour la classe Render.
This commit is contained in:
parent
9fe91edeff
commit
f053a094f3
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "freedatas2html",
|
"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.",
|
"description": "Visualization of data from various sources (CSV, API, HTML...) with filters, classification, pagination, etc.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -11,7 +11,7 @@ export class Render implements DatasRenders
|
|||||||
allBegining:"<table>",
|
allBegining:"<table>",
|
||||||
allEnding:"</table>",
|
allEnding:"</table>",
|
||||||
fieldsBegining:"<thead><tr>",
|
fieldsBegining:"<thead><tr>",
|
||||||
fieldsEnding:"</tr><thead>",
|
fieldsEnding:"</tr></thead>",
|
||||||
fieldDisplaying:"<th>#FIELDNAME</th>",
|
fieldDisplaying:"<th>#FIELDNAME</th>",
|
||||||
linesBegining:"<tbody>",
|
linesBegining:"<tbody>",
|
||||||
linesEnding:"</tbody>",
|
linesEnding:"</tbody>",
|
||||||
|
61
tests/renderSpec.ts
Normal file
61
tests/renderSpec.ts
Normal file
@ -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("<table><thead><tr><th>Z</th><th>Élément</th><th>Symbole</th><th>Famille</th></tr></thead><tbody></tbody></table>");
|
||||||
|
// Avec des données :
|
||||||
|
html=render.rend2HTML(datas);
|
||||||
|
expect(html).toEqual("<table><thead><tr><th>Z</th><th>Élément</th><th>Symbole</th><th>Famille</th></tr></thead><tbody><tr><td>1</td><td>Hydrogène</td><td>H</td><td>Non-métal</td></tr><tr><td>2</td><td>Hélium</td><td>He</td><td>Gaz noble</td></tr><tr><td>3</td><td>Lithium</td><td>Li</td><td>Métal alcalin</td></tr><tr><td>4</td><td>Béryllium</td><td>Be</td><td></td></tr></tbody></table>");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("Doit retourner un code HTML correspondant à la configuration fournie, avec ou sans données à afficher.", () =>
|
||||||
|
{
|
||||||
|
render.settings=
|
||||||
|
{
|
||||||
|
allBegining:"<div id=\"test\"><h4>Pas de noms de champs !</h4>",
|
||||||
|
allEnding:"</div>",
|
||||||
|
linesBegining:"<div id=\"myDatas\">",
|
||||||
|
linesEnding:"</div>",
|
||||||
|
lineBegining:"<ul>",
|
||||||
|
lineEnding:"</ul>",
|
||||||
|
dataDisplaying:"<li><b>#FIELDNAME :</b> #VALUE</li>",
|
||||||
|
};
|
||||||
|
let html=render.rend2HTML([]);
|
||||||
|
expect(html).toEqual("<div id=\"test\"><h4>Pas de noms de champs !</h4><div id=\"myDatas\"></div></div>");
|
||||||
|
// Avec des données :
|
||||||
|
html=render.rend2HTML(datas);
|
||||||
|
expect(html).toEqual("<div id=\"test\"><h4>Pas de noms de champs !</h4><div id=\"myDatas\"><ul><li><b>Z :</b> 1</li><li><b>Élément :</b> Hydrogène</li><li><b>Symbole :</b> H</li><li><b>Famille :</b> Non-métal</li></ul><ul><li><b>Z :</b> 2</li><li><b>Élément :</b> Hélium</li><li><b>Symbole :</b> He</li><li><b>Famille :</b> Gaz noble</li></ul><ul><li><b>Z :</b> 3</li><li><b>Élément :</b> Lithium</li><li><b>Symbole :</b> Li</li><li><b>Famille :</b> Métal alcalin</li></ul><ul><li><b>Z :</b> 4</li><li><b>Élément :</b> Béryllium</li><li><b>Symbole :</b> Be</li><li><b>Famille :</b> </li></ul></div></div>");
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user