hapi
Version:
HTTP Server framework
125 lines (100 loc) • 3.07 kB
JavaScript
// Load modules
var Lab = require('lab');
var Hapi = require('../..');
// Declare internals
var internals = {};
// Test shortcuts
var expect = Lab.expect;
var before = Lab.before;
var after = Lab.after;
var describe = Lab.experiment;
var it = Lab.test;
describe('Composer', function () {
it('composes pack', function (done) {
var manifest = {
pack: {
cache: {
engine: 'memory'
},
app: {
my: 'special-value'
}
},
servers: [
{
port: 0,
options: {
labels: ['api', 'nasty', 'test']
}
},
{
host: 'localhost',
port: 0,
options: {
labels: ['api', 'nice']
}
}
],
plugins: {
'../test/integration/pack/--test1': [ { ext: true }, {} ]
}
};
var composer = new Hapi.Composer(manifest);
composer.compose(function (err) {
expect(err).to.not.exist;
composer.start(function (err) {
expect(err).to.not.exist;
composer.stop(function () {
composer._packs[0]._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {
expect(res.result).to.equal('testing123special-value');
done();
});
});
});
});
});
it('composes pack (env)', function (done) {
var manifest = {
pack: {
cache: {
engine: 'memory'
}
},
servers: [
{
port: '$env.hapi_port',
options: {
labels: ['api', 'nasty', 'test']
}
},
{
host: '$env.hapi_host',
port: 0,
options: {
labels: ['api', 'nice']
}
}
],
plugins: {
'../test/integration/pack/--test1': {}
},
permissions: {
ext: true
}
};
process.env.hapi_port = '0';
process.env.hapi_host = 'localhost';
var composer = new Hapi.Composer(manifest);
composer.compose(function (err) {
expect(err).to.not.exist;
composer.start(function (err) {
expect(err).to.not.exist;
composer.stop();
composer._packs[0]._servers[0].inject({ method: 'GET', url: '/test1' }, function (res) {
expect(res.result).to.equal('testing123');
done();
});
});
});
});
});