marko/test/legacy-compiled-test.js

104 lines
2.7 KiB
JavaScript

'use strict';
var chai = require('chai');
chai.Assertion.includeStack = true;
var expect = require('chai').expect;
var nodePath = require('path');
var marko = require('../');
var fs = require('fs');
require('../node-require').install();
describe('marko/legacy-compiled' , function() {
before(function() {
require('../compiler').defaultOptions.checkUpToDate = false;
});
it('should allow an exports.create template to be loaded', function() {
var template = require('marko').load({
create: function(__helpers) {
var escapeXml = __helpers.x;
return function render(data, out) {
out.w('Hello ' +
escapeXml(data.name) +
'!');
};
}
});
var output = template.renderSync({
name: 'Frank'
});
expect(output).to.equal('Hello Frank!');
});
it('should only load an exports.create template once', function() {
var compiled = {
create: function(__helpers) {
var escapeXml = __helpers.x;
return function render(data, out) {
out.w('Hello ' +
escapeXml(data.name) +
'!');
};
}
};
var template1 = require('marko').load(compiled);
var output = template1.renderSync({ name: 'Frank' });
expect(output).to.equal('Hello Frank!');
var template2 = require('marko').load(compiled);
expect(template1).to.equal(template2);
});
it('should allow a module.exports = function create() {} template to be loaded', function() {
var template = require('marko').load(function create(__helpers) {
var escapeXml = __helpers.x;
return function render(data, out) {
out.w('Hello ' +
escapeXml(data.name) +
'!');
};
});
var output = template.renderSync({
name: 'Frank'
});
expect(output).to.equal('Hello Frank!');
});
it('should only load a module.exports = function create() {} template once', function() {
var compiled = function create(__helpers) {
var escapeXml = __helpers.x;
return function render(data, out) {
out.w('Hello ' +
escapeXml(data.name) +
'!');
};
};
var template1 = require('marko').load(compiled);
var output = template1.renderSync({ name: 'Frank' });
expect(output).to.equal('Hello Frank!');
var template2 = require('marko').load(compiled);
expect(template1).to.equal(template2);
});
});