Skip to content

Commit

Permalink
Add tests to validate async preRegister support.
Browse files Browse the repository at this point in the history
  • Loading branch information
csrl committed Nov 20, 2017
1 parent 6e1bb0e commit 0136f7d
Showing 1 changed file with 67 additions and 2 deletions.
69 changes: 67 additions & 2 deletions test/index.js
Expand Up @@ -312,8 +312,9 @@ describe('compose()', () => {
let count = 0;
const manifest = {};
const options = {
preRegister: function (server) {
preRegister: (server) => {

expect(server.info).to.be.an.object();
++count;
}
};
Expand All @@ -322,7 +323,51 @@ describe('compose()', () => {
expect(count).to.equal(1);
});

it('errors on failed pre handler', async () => {
it('composes a server with an async preRegister handler', async () => {

let count = 0;
const manifest = {
register: {
plugins: [
{
plugin: {
name: 'increment',
version: '1.0.0',
register: (server, options) => {

expect(server.info).to.be.an.object();
expect(count).to.equal(1);
count = count + options.increment;
}
},
options: {
increment: 2
}
}
]
}
};
const options = {
preRegister: (server) => {

expect(server.info).to.be.an.object();
expect(count).to.equal(0);
return new Promise((resolve) => {

process.nextTick(() => {

++count;
resolve();
});
});
}
};

await Glue.compose(manifest, options);
expect(count).to.equal(3);
});

it('errors on failed preRegister handler', async () => {

const manifest = {};
const options = {
Expand All @@ -335,6 +380,26 @@ describe('compose()', () => {
await expect(Glue.compose(manifest, options)).to.reject(Error, /preRegister failed/);
});

it('errors on failed async preRegister handler', async () => {

const manifest = {};
const options = {
preRegister: (server) => {

expect(server.info).to.be.an.object();
return new Promise((resolve, reject) => {

process.nextTick(() => {

reject(new Error('preRegister failed'));
});
});
}
};

await expect(Glue.compose(manifest, options)).to.reject(Error, /preRegister failed/);
});

it('throws on bogus options.relativeTo path (server.cache)', async () => {

const manifest = {
Expand Down

0 comments on commit 0136f7d

Please sign in to comment.