mirror of
https://github.com/zebrajr/express.git
synced 2025-12-06 00:19:48 +01:00
133 lines
3.4 KiB
JavaScript
133 lines
3.4 KiB
JavaScript
|
|
var express = require('../');
|
|
|
|
describe('app', function(){
|
|
describe('.render(name, fn)', function(){
|
|
it('should support absolute paths', function(done){
|
|
var app = express();
|
|
|
|
app.locals.user = { name: 'tobi' };
|
|
|
|
app.render(__dirname + '/fixtures/user.jade', function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>tobi</p>');
|
|
done();
|
|
})
|
|
})
|
|
|
|
it('should expose app.locals', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
app.locals.user = { name: 'tobi' };
|
|
|
|
app.render('user.jade', function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>tobi</p>');
|
|
done();
|
|
})
|
|
})
|
|
|
|
it('should support index.<engine>', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
app.set('view engine', 'jade');
|
|
|
|
app.render('blog/post', function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<h1>blog post</h1>');
|
|
done();
|
|
})
|
|
})
|
|
|
|
describe('when an error occurs', function(){
|
|
it('should invoke the callback', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
|
|
app.render('user.jade', function(err, str){
|
|
// nextTick to prevent cyclic
|
|
process.nextTick(function(){
|
|
err.message.should.match(/user is not defined/);
|
|
done();
|
|
});
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('when an extension is given', function(){
|
|
it('should render the template', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
|
|
app.render('email.jade', function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>This is an email</p>');
|
|
done();
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('when "view engine" is given', function(){
|
|
it('should render the template', function(done){
|
|
var app = express();
|
|
|
|
app.set('view engine', 'jade');
|
|
app.set('views', __dirname + '/fixtures');
|
|
|
|
app.render('email', function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>This is an email</p>');
|
|
done();
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('.render(name, options, fn)', function(){
|
|
it('should render the template', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
|
|
var user = { name: 'tobi' };
|
|
|
|
app.render('user.jade', { user: user }, function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>tobi</p>');
|
|
done();
|
|
})
|
|
})
|
|
|
|
it('should expose app.locals', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
app.locals.user = { name: 'tobi' };
|
|
|
|
app.render('user.jade', {}, function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>tobi</p>');
|
|
done();
|
|
})
|
|
})
|
|
|
|
it('should give precedence to app.render() locals', function(done){
|
|
var app = express();
|
|
|
|
app.set('views', __dirname + '/fixtures');
|
|
app.locals.user = { name: 'tobi' };
|
|
var jane = { name: 'jane' };
|
|
|
|
app.render('user.jade', { user: jane }, function(err, str){
|
|
if (err) return done(err);
|
|
str.should.equal('<p>jane</p>');
|
|
done();
|
|
})
|
|
})
|
|
})
|
|
})
|