6056 |
efrain |
1 |
/*global QUnit*/
|
|
|
2 |
(function(undefined) {
|
|
|
3 |
"use strict";
|
|
|
4 |
|
|
|
5 |
var jsrender = require('./../../jsrender-node.js');
|
|
|
6 |
var tmplify = require('./../../tmplify/index.js');
|
|
|
7 |
|
|
|
8 |
function upper(val) {
|
|
|
9 |
return val.toUpperCase();
|
|
|
10 |
}
|
|
|
11 |
function lower(val) {
|
|
|
12 |
return val.toLowerCase();
|
|
|
13 |
}
|
|
|
14 |
QUnit.module("node");
|
|
|
15 |
QUnit.test("jsrender.renderFile / jsrender.__express", function(assert) {
|
|
|
16 |
var html = jsrender.renderFile('./test/templates/name-template.html', {name: "Jo"});
|
|
|
17 |
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.renderFile("./file.path.html", data) loads and renders template');
|
|
|
18 |
|
|
|
19 |
html = jsrender.__express('./test/templates/name-template.html', {name: "Jo"});
|
|
|
20 |
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.__express("./file.path.html", data) loads and renders template');
|
|
|
21 |
});
|
|
|
22 |
|
|
|
23 |
QUnit.test("jsrender.templates", function(assert) {
|
|
|
24 |
var tmpl = jsrender.templates('./test/templates/name-template.html');
|
|
|
25 |
var html = tmpl({name: "Jo"});
|
|
|
26 |
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.templates("./file.path.html") compiles template');
|
|
|
27 |
|
|
|
28 |
tmpl = jsrender.templates({markup: 'Some {{:~upper("Markup")}} Name: {{:~upper(name)}} {{lower:name}}', helpers: {upper:upper}, converters: {lower:lower}});
|
|
|
29 |
html = tmpl({name: "Jo"});
|
|
|
30 |
assert.equal(html, "Some MARKUP Name: JO jo", 'jsrender.templates({markup: ..., helpers: ..., ...}) compiles template with options');
|
|
|
31 |
});
|
|
|
32 |
|
|
|
33 |
QUnit.test("jsrender.compile", function(assert) {
|
|
|
34 |
var tmpl = jsrender.compile('./test/templates/name-template.html');
|
|
|
35 |
var html = tmpl({name: "Jo"});
|
|
|
36 |
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.compile("./file.path.html") compiles template');
|
|
|
37 |
|
|
|
38 |
tmpl = jsrender.compile('Some {{:~upper("Markup")}} Name: {{:~upper(name)}} {{lower:name}}', {helpers: {upper:upper}, converters: {lower:lower}});
|
|
|
39 |
html = tmpl({name: "Jo"});
|
|
|
40 |
assert.equal(html, "Some MARKUP Name: JO jo", 'jsrender.compile("markup", {helpers: ..., ...}) compiles template with options');
|
|
|
41 |
});
|
|
|
42 |
|
|
|
43 |
QUnit.test("jsrender.tags.clientTemplate", function(assert) {
|
|
|
44 |
jsrender.views.settings.delimiters("<%", "%>");
|
|
|
45 |
var tmpl = jsrender.compile(
|
|
|
46 |
'<script src="//code.jquery.com/jquery-3.5.1.js"></script>\n'
|
|
|
47 |
+ '<script src="//www.jsviews.com/download/jsrender.js"></script>\n'
|
|
|
48 |
+ '<%clientTemplate "./test/templates/outer.html"/%>\n'
|
|
|
49 |
+ '<%clientTemplate "./test/templates/inner.html"/%>\n'
|
|
|
50 |
+ '<script id="clientonly" type="test/x-jsrender">{{include tmpl="./test/templates/outer.html"/}}</script>\n'
|
|
|
51 |
+ '<div id="result"></div>\n'
|
|
|
52 |
+ '<script>var tmpl = $.templates("#clientonly"); $("#result").html(tmpl({name: "Jeff"}));</script>');
|
|
|
53 |
var html = tmpl({name: "Jo"});
|
|
|
54 |
assert.equal(html,
|
|
|
55 |
'<script src="//code.jquery.com/jquery-3.5.1.js"></script>\n'
|
|
|
56 |
+ '<script src="//www.jsviews.com/download/jsrender.js"></script>\n'
|
|
|
57 |
+ '<script id="./test/templates/outer.html" type="text/x-jsrender">Name: {{:name}} (outer.html) {{include tmpl="./test/templates/inner.html"/}}</script>\n'
|
|
|
58 |
+ '<script id="./test/templates/inner.html" type="text/x-jsrender">Name: {{:name}} (inner.html)</script>\n'
|
|
|
59 |
+ '<script id="clientonly" type="test/x-jsrender">{{include tmpl="./test/templates/outer.html"/}}</script>\n'
|
|
|
60 |
+ '<div id="result"></div>\n'
|
|
|
61 |
+ '<script>var tmpl = $.templates("#clientonly"); $("#result").html(tmpl({name: "Jeff"}));</script>',
|
|
|
62 |
'Server-rendered templates using {{clientTemplate "./.../tmpl.html"}}\nand direct rendering using different delimiters on server/client');
|
|
|
63 |
});
|
|
|
64 |
|
|
|
65 |
QUnit.test("jsrender/tmplify .html template", function(assert) {
|
|
|
66 |
stop();
|
|
|
67 |
var outputFile = 'test/browserify/bundles/html-jsr-tmpl-bundle.js';
|
|
|
68 |
var fs = require('fs');
|
|
|
69 |
var browserify = require('browserify');
|
|
|
70 |
browserify('test/browserify/html-jsr-tmpl.js')
|
|
|
71 |
|
|
|
72 |
.transform(tmplify) // Use default extensions: "html jsr jsrender"
|
|
|
73 |
.bundle()
|
|
|
74 |
.pipe(fs.createWriteStream(outputFile)
|
|
|
75 |
.on('finish', function() {
|
|
|
76 |
assert.ok(fs.readFileSync(outputFile, 'utf8').indexOf("browserify.done.html ") > 0, 'browserify().transform(tmplify)');
|
|
|
77 |
start();
|
|
|
78 |
})
|
|
|
79 |
)
|
|
|
80 |
.on('error', function(err) {
|
|
|
81 |
console.log(err);
|
|
|
82 |
});
|
|
|
83 |
});
|
|
|
84 |
|
|
|
85 |
QUnit.test("jsrender/tmplify options: 'htm jsr'", function(assert) {
|
|
|
86 |
stop();
|
|
|
87 |
var outputFile = 'test/browserify/bundles/htm-jsrender-tmpl-bundle.js';
|
|
|
88 |
var fs = require('fs');
|
|
|
89 |
var browserify = require('browserify');
|
|
|
90 |
browserify('test/browserify/htm-jsrender-tmpl.js')
|
|
|
91 |
.transform(tmplify, {extensions: 'htm jsrender'})
|
|
|
92 |
.bundle()
|
|
|
93 |
.pipe(fs.createWriteStream(outputFile))
|
|
|
94 |
.on('finish', function() {
|
|
|
95 |
assert.ok(fs.readFileSync(outputFile, 'utf8').indexOf("browserify.done.htm ") > 0, 'browserify().transform(tmplify, {extensions: "..., ..."})');
|
|
|
96 |
start();
|
|
|
97 |
})
|
|
|
98 |
.on('error', function(err) {
|
|
|
99 |
console.log(err);
|
|
|
100 |
});
|
|
|
101 |
});
|
|
|
102 |
|
|
|
103 |
})();
|