UNPKG

zpt

Version:

Zenon Page Templates - JS (ZPT-JS)

130 lines (124 loc) 6.62 kB
/* jshint esversion: 6 */ "use strict"; var Qunit = require('qunit'); var zpt = require('../../../js/app/main.js'); var utils = require('./utils.js'); var dictionary = { items: [ 'item0', 'item1', { type: 'list', id: 'item2', items: ['item21', 'item22'] }, 'item3' ] }; // Parse template zpt.run({ root: document.body, dictionary: dictionary, //indexExpressions: false }); // Run tests QUnit.test("Simple macros test", function (assert) { var t1 = ` <div data-use-macro="'list'" data-id="1" style="display: none;"> First macro call here </div> <ul data-mmacro="list" data-related-id="1" data-qdup="1"> <li data-define="isList (eq: 'list' item/type)" data-repeat="item items" data-id="2" style="display: none;"> <div data-condition="isList"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-content="item">An item</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="3" data-related-id="2" data-tauto-define="item-index 0;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,4,0)"> <div data-condition="isList" data-condition-result="false" data-id="4" style="display: none;"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-condition-result="true" data-content="item" data-id="5">item0</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="6" data-related-id="2" data-tauto-define="item-index 1;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,4,0)"> <div data-condition="isList" data-condition-result="false" data-id="7" style="display: none;"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-condition-result="true" data-content="item" data-id="8">item1</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="9" data-related-id="2" data-tauto-define="item-index 2;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,4,0)"> <div data-condition="isList" data-condition-result="true" data-id="10"> <span data-content="item/id" data-id="11">item2</span> <div data-define="items item/items" data-id="12"> <div data-use-macro="'list'" data-id="13" style="display: none;"> Nested macro call here </div> <ul data-mmacro="list" data-related-id="13" data-qdup="1"> <li data-define="isList (eq: 'list' item/type)" data-repeat="item items" data-id="14" style="display: none;"> <div data-condition="isList"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-content="item">An item</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="15" data-related-id="14" data-tauto-define="item-index 0;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,2,0)"> <div data-condition="isList" data-condition-result="false" data-id="16" style="display: none;"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-condition-result="true" data-content="item" data-id="17">item21</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="18" data-related-id="14" data-tauto-define="item-index 1;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,2,0)"> <div data-condition="isList" data-condition-result="false" data-id="19" style="display: none;"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-condition-result="true" data-content="item" data-id="20">item22</div> </li> </ul> </div> </div> <div data-condition="not: isList" data-condition-result="false" data-content="item" data-id="21" style="display: none;">An item</div> </li> <li data-define="isList (eq: 'list' item/type)" data-qdup="1" data-id="22" data-related-id="2" data-tauto-define="item-index 3;item-all items;item item-all[item-index];item-repeat context/repeat(item-index,4,0)"> <div data-condition="isList" data-condition-result="false" data-id="23" style="display: none;"> <span data-content="item/id">An item</span> <div data-define="items item/items"> <div data-use-macro="'list'"> Nested macro call here </div> </div> </div> <div data-condition="not: isList" data-condition-result="true" data-content="item" data-id="24">item3</div> </li> </ul> `; utils.assertHtml(assert, 't1', t1); });