test(includer): unit tests for includer function option

This commit is contained in:
Leonardo Matos
2020-05-14 02:17:55 -03:00
parent f27623116d
commit b525a777f6
2 changed files with 31 additions and 0 deletions

View File

@@ -999,6 +999,36 @@ suite('include()', function () {
fixture('include.html'));
});
test('include ejs with custom includer function', function () {
var file = 'test/fixtures/include-root.ejs';
var inc = function (url, prev) {
if (url.charAt(0) === '/') {
return {
filename: path.join(__dirname, 'fixtures', prev)
};
} else {
return prev;
}
};
assert.equal(ejs.render(fixture('include-root.ejs'), {pets: users}, {filename: file, delimiter: '@', includer: inc}),
fixture('include.html'));
});
test('include ejs with includer returning template', function () {
var file = 'test/fixtures/include-root.ejs';
var inc = function (url, prev) {
if (prev === '/include.ejs') {
return {
template: '<p>Hello template!</p>\n'
};
} else {
return prev;
}
};
assert.equal(ejs.render(fixture('include-root.ejs'), {pets: users}, {filename: file, delimiter: '@', includer: inc}),
fixture('hello-template.html'));
});
test('work when nested', function () {
var file = 'test/fixtures/menu.ejs';
assert.equal(ejs.render(fixture('menu.ejs'), {pets: users}, {filename: file}),

1
test/fixtures/hello-template.html vendored Normal file
View File

@@ -0,0 +1 @@
<p>Hello template!</p>