Autoría | Ultima modificación | Ver Log |
/*global QUnit*/
(function(undefined) {
"use strict";
var jsrender = require('./../../jsrender-node.js');
var tmplify = require('./../../tmplify/index.js');
function upper(val) {
return val.toUpperCase();
}
function lower(val) {
return val.toLowerCase();
}
QUnit.module("node");
QUnit.test("jsrender.renderFile / jsrender.__express", function(assert) {
var html = jsrender.renderFile('./test/templates/name-template.html', {name: "Jo"});
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.renderFile("./file.path.html", data) loads and renders template');
html = jsrender.__express('./test/templates/name-template.html', {name: "Jo"});
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.__express("./file.path.html", data) loads and renders template');
});
QUnit.test("jsrender.templates", function(assert) {
var tmpl = jsrender.templates('./test/templates/name-template.html');
var html = tmpl({name: "Jo"});
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.templates("./file.path.html") compiles template');
tmpl = jsrender.templates({markup: 'Some {{:~upper("Markup")}} Name: {{:~upper(name)}} {{lower:name}}', helpers: {upper:upper}, converters: {lower:lower}});
html = tmpl({name: "Jo"});
assert.equal(html, "Some MARKUP Name: JO jo", 'jsrender.templates({markup: ..., helpers: ..., ...}) compiles template with options');
});
QUnit.test("jsrender.compile", function(assert) {
var tmpl = jsrender.compile('./test/templates/name-template.html');
var html = tmpl({name: "Jo"});
assert.equal(html, "Name: Jo (name-template.html)", 'jsrender.compile("./file.path.html") compiles template');
tmpl = jsrender.compile('Some {{:~upper("Markup")}} Name: {{:~upper(name)}} {{lower:name}}', {helpers: {upper:upper}, converters: {lower:lower}});
html = tmpl({name: "Jo"});
assert.equal(html, "Some MARKUP Name: JO jo", 'jsrender.compile("markup", {helpers: ..., ...}) compiles template with options');
});
QUnit.test("jsrender.tags.clientTemplate", function(assert) {
jsrender.views.settings.delimiters("<%", "%>");
var tmpl = jsrender.compile(
'<script src="//code.jquery.com/jquery-3.5.1.js"></script>\n'
+ '<script src="//www.jsviews.com/download/jsrender.js"></script>\n'
+ '<%clientTemplate "./test/templates/outer.html"/%>\n'
+ '<%clientTemplate "./test/templates/inner.html"/%>\n'
+ '<script id="clientonly" type="test/x-jsrender">{{include tmpl="./test/templates/outer.html"/}}</script>\n'
+ '<div id="result"></div>\n'
+ '<script>var tmpl = $.templates("#clientonly"); $("#result").html(tmpl({name: "Jeff"}));</script>');
var html = tmpl({name: "Jo"});
assert.equal(html,
'<script src="//code.jquery.com/jquery-3.5.1.js"></script>\n'
+ '<script src="//www.jsviews.com/download/jsrender.js"></script>\n'
+ '<script id="./test/templates/outer.html" type="text/x-jsrender">Name: {{:name}} (outer.html) {{include tmpl="./test/templates/inner.html"/}}</script>\n'
+ '<script id="./test/templates/inner.html" type="text/x-jsrender">Name: {{:name}} (inner.html)</script>\n'
+ '<script id="clientonly" type="test/x-jsrender">{{include tmpl="./test/templates/outer.html"/}}</script>\n'
+ '<div id="result"></div>\n'
+ '<script>var tmpl = $.templates("#clientonly"); $("#result").html(tmpl({name: "Jeff"}));</script>',
'Server-rendered templates using {{clientTemplate "./.../tmpl.html"}}\nand direct rendering using different delimiters on server/client');
});
QUnit.test("jsrender/tmplify .html template", function(assert) {
stop();
var outputFile = 'test/browserify/bundles/html-jsr-tmpl-bundle.js';
var fs = require('fs');
var browserify = require('browserify');
browserify('test/browserify/html-jsr-tmpl.js')
.transform(tmplify) // Use default extensions: "html jsr jsrender"
.bundle()
.pipe(fs.createWriteStream(outputFile)
.on('finish', function() {
assert.ok(fs.readFileSync(outputFile, 'utf8').indexOf("browserify.done.html ") > 0, 'browserify().transform(tmplify)');
start();
})
)
.on('error', function(err) {
console.log(err);
});
});
QUnit.test("jsrender/tmplify options: 'htm jsr'", function(assert) {
stop();
var outputFile = 'test/browserify/bundles/htm-jsrender-tmpl-bundle.js';
var fs = require('fs');
var browserify = require('browserify');
browserify('test/browserify/htm-jsrender-tmpl.js')
.transform(tmplify, {extensions: 'htm jsrender'})
.bundle()
.pipe(fs.createWriteStream(outputFile))
.on('finish', function() {
assert.ok(fs.readFileSync(outputFile, 'utf8').indexOf("browserify.done.htm ") > 0, 'browserify().transform(tmplify, {extensions: "..., ..."})');
start();
})
.on('error', function(err) {
console.log(err);
});
});
})();