UNPKG

base-test-suite

Version:
113 lines (91 loc) 3.24 kB
'use strict'; var assert = require('assert'); module.exports = function(App, options, runner) { var app; describe('app.view.render', function() { describe('rendering', function() { beforeEach(function() { app = new App(); app.engine('tmpl', require('engine-base')); app.create('page'); }); it('should use helpers to render a view:', function(cb) { var locals = {name: 'Halle'}; app.helper('upper', function(str) { return str.toUpperCase(str); }); var buffer = new Buffer('a <%= upper(name) %> b'); app.page('a.tmpl', {contents: buffer, locals: locals}) .render(function(err, res) { if (err) return cb(err); assert.equal(res.contents.toString(), 'a HALLE b'); cb(); }); }); it('should support helpers as an array:', function(cb) { var locals = {name: 'Halle'}; app.helpers([ { lower: function(str) { return str.toLowerCase(str); } } ]); var buffer = new Buffer('a <%= lower(name) %> b'); app.page('a.tmpl', {contents: buffer, locals: locals}) .render(function(err, res) { if (err) return cb(err); assert.equal(res.contents.toString(), 'a halle b'); cb(); }); }); it('should support helpers as an object:', function(cb) { var locals = {name: 'Halle'}; app.helpers({ prepend: function(prefix, str) { return prefix + str; } }); var buffer = new Buffer('a <%= prepend("foo ", name) %> b'); app.page('a.tmpl', {contents: buffer, locals: locals}) .render(function(err, res) { if (err) return cb(err); assert.equal(res.contents.toString(), 'a foo Halle b'); cb(); }); }); it('should use the engine defined on view options:', function(cb) { app.engine('hbs', require('engine-handlebars')); var locals = {name: 'Halle'}; app.helpers({ prepend: function(prefix, str) { return prefix + str; } }); var buffer = new Buffer('a {{prepend "foo " name}} b'); app.page('a.tmpl', {contents: buffer, locals: locals, options: {engine: 'hbs'}}) .render(function(err, res) { if (err) return cb(err); assert.equal(res.contents.toString(), 'a foo Halle b'); cb(); }); }); it('should render a view without a collection:', function(cb) { app.engine('hbs', require('engine-handlebars')); var locals = {name: 'Halle'}; app.helpers({ prepend: function(prefix, str) { return prefix + str; } }); var buffer = new Buffer('a {{prepend "foo " name}} b'); var view = app.view('a.tmpl', {contents: buffer, locals: locals, options: {engine: 'hbs'}}) app.render(view, function(err, res) { if (err) return cb(err); assert.equal(res.contents.toString(), 'a foo Halle b'); cb(); }); }); }); }); };