96 lines
2.4 KiB
JavaScript
96 lines
2.4 KiB
JavaScript
|
var request = require('supertest');
|
||
|
var assert = require('assert');
|
||
|
var hbs = require('..');
|
||
|
|
||
|
describe('express-hbs', function() {
|
||
|
|
||
|
describe('defaults', function() {
|
||
|
var app;
|
||
|
|
||
|
beforeEach(function() {
|
||
|
var example = require('../example/app');
|
||
|
app = example.create(hbs.create());
|
||
|
});
|
||
|
|
||
|
|
||
|
it('should render using default layout', function(done) {
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(/DEFAULT LAYOUT/, done);
|
||
|
});
|
||
|
|
||
|
it('should render layout declared in markup', function(done) {
|
||
|
request(app)
|
||
|
.get('/fruits')
|
||
|
.expect(/DECLARATIVE LAYOUT/, done);
|
||
|
});
|
||
|
|
||
|
it('should render nested declarative layouts correctly', function(done) {
|
||
|
request(app)
|
||
|
.get('/fruits/apple')
|
||
|
.expect(/DECLARATIVE LAYOUT/)
|
||
|
.expect(/NESTED LAYOUT/, done);
|
||
|
});
|
||
|
|
||
|
it('should render layout specified as locals', function(done) {
|
||
|
request(app)
|
||
|
.get('/veggies')
|
||
|
.expect(/PROGRAMMATIC LAYOUT/, done);
|
||
|
});
|
||
|
|
||
|
it('should render nested layouts correctly when first layout is specified as locals', function(done) {
|
||
|
request(app)
|
||
|
.get('/veggies/carrot')
|
||
|
.expect(/PROGRAMMATIC LAYOUT/)
|
||
|
.expect(/NESTED LAYOUT/, done);
|
||
|
});
|
||
|
|
||
|
it('should render partial', function(done) {
|
||
|
request(app)
|
||
|
.get('/veggies')
|
||
|
.expect(/jquery\.js/)
|
||
|
.expect(/Other partial/, done);
|
||
|
});
|
||
|
|
||
|
it('should render sub partial', function(done) {
|
||
|
request(app)
|
||
|
.get('/veggies')
|
||
|
.expect(/just a comment/, done);
|
||
|
});
|
||
|
|
||
|
it('should render block', function(done) {
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(/color: blue/, done);
|
||
|
});
|
||
|
|
||
|
it('should render block default content', function(done) {
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(/Default block content/, done);
|
||
|
});
|
||
|
|
||
|
it('should render block content instead of default content when contentFor is declared', function(done) {
|
||
|
request(app)
|
||
|
.get('/replace')
|
||
|
.expect(/Non-default block content/, done);
|
||
|
});
|
||
|
|
||
|
it('should replace {{body}}', function(done) {
|
||
|
request(app)
|
||
|
.get('/')
|
||
|
.expect(/Vegetables/, done);
|
||
|
});
|
||
|
|
||
|
});
|
||
|
|
||
|
describe('instances', function() {
|
||
|
it('should create isolated instances', function() {
|
||
|
var hbs2 = hbs.create();
|
||
|
var hbs3 = hbs.create();
|
||
|
|
||
|
assert(hbs !== hbs2 && hbs !== hbs3 && hbs2 !== hbs3);
|
||
|
});
|
||
|
});
|
||
|
});
|