Я пытаюсь протестировать свое приложение express, и мне нужно убедиться, что приложение запущено перед выполнением любого теста. Поэтому я пытаюсь заставить приложение генерировать событие, когда оно будет готово, и ждать этого события в моем before()
, но по какой-то причине я никогда не получаю событие и не получаю Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
. Что я делаю не так?
Индекс. js
const express = require('express')
const app = express()
const port = 3000
app.listen(port, function() {
console.log(`app listening on port ${port}!` )
app.emit('appStarted')
})
module.exports = app
тест. js
const app = require('../index.js');
before(done => {
console.log('BEFORE')
app.on('appStarted', () => {
done()
})
});