111 lines
2.5 KiB
JavaScript
111 lines
2.5 KiB
JavaScript
|
|
var assert = require('assert')
|
|
var express = require('..')
|
|
var request = require('supertest')
|
|
|
|
describe('app', function(){
|
|
it('should inherit from event emitter', function(done){
|
|
var app = express();
|
|
app.on('foo', done);
|
|
app.emit('foo');
|
|
})
|
|
|
|
it('should be callable', function(){
|
|
var app = express();
|
|
assert.equal(typeof app, 'function');
|
|
})
|
|
|
|
it('should 404 without routes', function(done){
|
|
request(express())
|
|
.get('/')
|
|
.expect(404, done);
|
|
})
|
|
})
|
|
|
|
describe('app.parent', function(){
|
|
it('should return the parent when mounted', function(){
|
|
var app = express()
|
|
, blog = express()
|
|
, blogAdmin = express();
|
|
|
|
app.use('/blog', blog);
|
|
blog.use('/admin', blogAdmin);
|
|
|
|
assert(!app.parent, 'app.parent');
|
|
blog.parent.should.equal(app);
|
|
blogAdmin.parent.should.equal(blog);
|
|
})
|
|
})
|
|
|
|
describe('app.mountpath', function(){
|
|
it('should return the mounted path', function(){
|
|
var admin = express();
|
|
var app = express();
|
|
var blog = express();
|
|
var fallback = express();
|
|
|
|
app.use('/blog', blog);
|
|
app.use(fallback);
|
|
blog.use('/admin', admin);
|
|
|
|
admin.mountpath.should.equal('/admin');
|
|
app.mountpath.should.equal('/');
|
|
blog.mountpath.should.equal('/blog');
|
|
fallback.mountpath.should.equal('/');
|
|
})
|
|
})
|
|
|
|
describe('app.router', function(){
|
|
it('should throw with notice', function(done){
|
|
var app = express()
|
|
|
|
try {
|
|
app.router;
|
|
} catch(err) {
|
|
done();
|
|
}
|
|
})
|
|
})
|
|
|
|
describe('app.path()', function(){
|
|
it('should return the canonical', function(){
|
|
var app = express()
|
|
, blog = express()
|
|
, blogAdmin = express();
|
|
|
|
app.use('/blog', blog);
|
|
blog.use('/admin', blogAdmin);
|
|
|
|
app.path().should.equal('');
|
|
blog.path().should.equal('/blog');
|
|
blogAdmin.path().should.equal('/blog/admin');
|
|
})
|
|
})
|
|
|
|
describe('in development', function(){
|
|
it('should disable "view cache"', function(){
|
|
process.env.NODE_ENV = 'development';
|
|
var app = express();
|
|
app.enabled('view cache').should.be.false;
|
|
process.env.NODE_ENV = 'test';
|
|
})
|
|
})
|
|
|
|
describe('in production', function(){
|
|
it('should enable "view cache"', function(){
|
|
process.env.NODE_ENV = 'production';
|
|
var app = express();
|
|
app.enabled('view cache').should.be.true;
|
|
process.env.NODE_ENV = 'test';
|
|
})
|
|
})
|
|
|
|
describe('without NODE_ENV', function(){
|
|
it('should default to development', function(){
|
|
process.env.NODE_ENV = '';
|
|
var app = express();
|
|
app.get('env').should.equal('development');
|
|
process.env.NODE_ENV = 'test';
|
|
})
|
|
})
|