Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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);
        });
});

})();