UNPKG

zpt

Version:

Zenon Page Templates - JS (ZPT-JS)

147 lines (128 loc) 6.68 kB
import { zzDOM } from '../../../node_modules/zzdom/index.js'; const zz = zzDOM.zz; import { zpt } from '../../../index.js'; import { dictionary } from './dictionary.js'; import { utils } from './utils.js'; // Add vars to dictionary dictionary.emptyArray = []; // Parse template zpt.run({ root: document.body, dictionary: dictionary }); // Run tests QUnit.test( "loop test", function( assert ) { assert.equal( utils.getAllValues( '.value' ) , 'tool A/tool B/tool C/tool D' ); assert.equal( utils.getAllValues( '.index' ) , '0/1/2/3' ); assert.equal( utils.getAllValues( '.number' ) , '1/2/3/4' ); assert.equal( utils.getAllValues( '.isEven' ) , 'true/false/true/false' ); assert.equal( utils.getAllValues( '.isOdd' ) , 'false/true/false/true' ); assert.equal( utils.getAllValues( '.isStart' ) , 'true/false/false/false' ); assert.equal( utils.getAllValues( '.isEnd' ) , 'false/false/false/true' ); assert.equal( utils.getAllValues( '.getLength' ) , '4/4/4/4' ); assert.equal( utils.getAllValues( '.getLetter' ) , 'a/b/c/d' ); assert.equal( utils.getAllValues( '.getCapitalLetter' ) , 'A/B/C/D' ); assert.equal( utils.getAllValues( '.getRoman' ) , 'i/ii/iii/iv' ); assert.equal( utils.getAllValues( '.getCapitalRoman' ) , 'I/II/III/IV' ); }); QUnit.test( "array loops test", function( assert ) { assert.equal( utils.getAllValues( '.cValue1' ) , '10/20/30' ); assert.equal( utils.getAllValues( '.cValue2' ) , 'jaja/jeje/jiji' ); assert.equal( utils.getAllValues( '.cValue3' ) , 'jaja/100/2' ); assert.equal( utils.getAllValues( '.cValue4' ) , 'jaja/100/5' ); assert.equal( utils.getAllValues( '.cValue5' ) , '1/2/3/4/5' ); assert.equal( utils.getAllValues( '.cValue6' ) , '1/3/5/7' ); assert.equal( utils.getAllValues( '.cValue7' ) , '7/5/3/1' ); assert.equal( utils.getAllValues( '.cValue8' ) , '0/1/2/3/4/5' ); assert.equal( utils.getAllValues( '.cValue9' ) , '2/4/6/8' ); assert.equal( utils.getAllValues( '.cValue10' ) , 'jaja/0/1/2/jeje' ); assert.equal( utils.getAllValues( '.cValue11' ) , '' ); assert.equal( utils.getAllValues( '.cValue12' ) , '' ); assert.equal( utils.getAllValues( '.cValue13' ) , '' ); }); QUnit.test( "dynamic loops test", function( assert ) { // Replace 10/20/30/40 by 10/20/30 dictionary.someNumbers = [ 10, 20, 30 ]; zpt.run({ root: zz( '#dynamicLoop' )[0] }); assert.equal( utils.getAllValues( '.nValue1' ) , '10/20/30' ); // Add 40/50/60 dictionary.someNumbers = [ 40, 50, 60 ]; zpt.run({ notRemoveGeneratedTags: true }); assert.equal( utils.getAllValues( '.nValue1' ) , '10/20/30/40/50/60' ); }); QUnit.test( "array loops test", function( assert ) { assert.equal( utils.getAllValues( '.pValue' ) , '1/2/3/4/5' ); }); QUnit.test( "dynamic loops in table test", function( assert ) { assert.equal( utils.getAllValues( '.d_value' ) , 'tool A/tool B/tool C/tool D' ); assert.equal( utils.getAllValues( '.d_index' ) , '0/1/2/3' ); assert.equal( utils.getAllValues( '.d_number' ) , '1/2/3/4' ); assert.equal( utils.getAllValues( '.d_isEven' ) , 'true/false/true/false' ); assert.equal( utils.getAllValues( '.d_isOdd' ) , 'false/true/false/true' ); assert.equal( utils.getAllValues( '.d_isStart' ) , 'true/false/false/false' ); assert.equal( utils.getAllValues( '.d_isEnd' ) , 'false/false/false/true' ); assert.equal( utils.getAllValues( '.d_getLength' ) , '4/4/4/4' ); assert.equal( utils.getAllValues( '.d_getLetter' ) , 'a/b/c/d' ); assert.equal( utils.getAllValues( '.d_getCapitalLetter' ) , 'A/B/C/D' ); assert.equal( utils.getAllValues( '.d_getRoman' ) , 'i/ii/iii/iv' ); assert.equal( utils.getAllValues( '.d_getCapitalRoman' ) , 'I/II/III/IV' ); // Add a tool dictionary.tools = [ { name: "tool E", rent_url: "rent?id=1008" } ]; zpt.run({ root: zz( '#dynamicLoop2' )[0], notRemoveGeneratedTags: true }); assert.equal( utils.getAllValues( '.d_value' ) , 'tool A/tool B/tool C/tool D/tool E' ); assert.equal( utils.getAllValues( '.d_index' ) , '0/1/2/3/4' ); assert.equal( utils.getAllValues( '.d_number' ) , '1/2/3/4/5' ); assert.equal( utils.getAllValues( '.d_isEven' ) , 'true/false/true/false/true' ); assert.equal( utils.getAllValues( '.d_isOdd' ) , 'false/true/false/true/false' ); assert.equal( utils.getAllValues( '.d_isStart' ) , 'true/false/false/false/false' ); assert.equal( utils.getAllValues( '.d_isEnd' ) , 'false/false/false/true/true' ); assert.equal( utils.getAllValues( '.d_getLength' ) , '4/4/4/4/5' ); assert.equal( utils.getAllValues( '.d_getLetter' ) , 'a/b/c/d/e' ); assert.equal( utils.getAllValues( '.d_getCapitalLetter' ) , 'A/B/C/D/E' ); assert.equal( utils.getAllValues( '.d_getRoman' ) , 'i/ii/iii/iv/v' ); assert.equal( utils.getAllValues( '.d_getCapitalRoman' ) , 'I/II/III/IV/V' ); // Add 2 tools dictionary.tools = [ { name: "tool F", rent_url: "rent?id=1010" }, { name: "tool G", rent_url: "rent?id=1012" } ]; zpt.run({ notRemoveGeneratedTags: true }); assert.equal( utils.getAllValues( '.d_value' ) , 'tool A/tool B/tool C/tool D/tool E/tool F/tool G' ); assert.equal( utils.getAllValues( '.d_index' ) , '0/1/2/3/4/5/6' ); assert.equal( utils.getAllValues( '.d_number' ) , '1/2/3/4/5/6/7' ); assert.equal( utils.getAllValues( '.d_isEven' ) , 'true/false/true/false/true/false/true' ); assert.equal( utils.getAllValues( '.d_isOdd' ) , 'false/true/false/true/false/true/false' ); assert.equal( utils.getAllValues( '.d_isStart' ) , 'true/false/false/false/false/false/false' ); assert.equal( utils.getAllValues( '.d_isEnd' ) , 'false/false/false/true/true/false/true' ); assert.equal( utils.getAllValues( '.d_getLength' ) , '4/4/4/4/5/7/7' ); assert.equal( utils.getAllValues( '.d_getLetter' ) , 'a/b/c/d/e/f/g' ); assert.equal( utils.getAllValues( '.d_getCapitalLetter' ) , 'A/B/C/D/E/F/G' ); assert.equal( utils.getAllValues( '.d_getRoman' ) , 'i/ii/iii/iv/v/vi/vii' ); assert.equal( utils.getAllValues( '.d_getCapitalRoman' ) , 'I/II/III/IV/V/VI/VII' ); }); QUnit.test( "default loop test", function( assert ) { assert.equal( utils.getAllValues( '.lValue' ) , 'Default item' ); }); QUnit.test( "empty loop test", function( assert ) { assert.equal( utils.getAllValues( '.eValue' ) , 'First item' ); });