Jest did not exit one second after the test run has completed using express
My problem was solved by this code:
beforeAll(done => { done()})afterAll(done => { // Closing the DB connection allows Jest to exit successfully. mongoose.connection.close() done()})
I was having the same issue but in my package.json file i added "test": "jest --detectOpenHandles"
and ran npm test --detectOpenHandles
. I didn't get the error message this time. Maybe you can try doing that.
On my side, I just separate app.listen()
from my app.So with express, your app finish with an export.
// index.jsmodule.exports = app;
And just create another file to listen the port.
// server.jsconst app = require('./index')app.listen(...)
And if you import just the index (app index.js
) in your tests, it should work with no extra config.Of course your need to adjust the start of your express app. It should use now server.js
.