Open noel-yap opened 6 months ago
The following fixes the problem:
Contents of server.js
:
export const server = {
mbApp: null,
start: (port) => {
return mb.create({
loglevel: "debug",
port: port,
}).then((app) => {
server.mbApp = app;
return mbh.registerImposter(xifin.getImposter());
});
},
stop: (done) => {
mbh.deregisterImposters()
.then(() => {
server.mbApp.close(done);
})
}
};
Contents of mountebank-helper.js
:
export const mbh = {
registerImposter: (body) => {
return superagent
.post(`${config.MB_AUTHORITY}/imposters`)
.set("Content-Type", "application/json")
.send(body)
.then(() => {
console.log(`Imposter "${body.name}" created`);
}).catch((err) => {
throw new Error(`Failed to create "${body.name}" imposter: ${err}`);
});
},
deregisterImposters: () => {
return superagent
.delete(`${config.MB_AUTHORITY}/imposters`)
.then(() => {
console.log("All imposters deregistered")
}).catch((err) => {
throw new Error(`Failed to deregister imposters: ${err}`)
})
}
};
I do think, though, that it's unexpected that when calling close
on the app, it doesn't cleanup all other resources its holding.
Expected behaviour
Mocha exits.
Actual behaviour
Mocha hangs after all tests pass.
Steps to reproduce
Contents of
server.test.js
:Contents of
server.js
:Contents of
mountebank-helper.js
:Software versions used
Log contents in mb.log when running mb --loglevel debug