ОК, поэтому у меня есть все эти тесты, которые зависят от node-mocks-http в mocha для проверки моих контроллеров express.js, и они все еще работают просто отлично.
Проблема в том, что любой новыйтесты, которые я создаю, отказываются выдавать событие 'end' и заканчивать.Настало время, когда я решил написать очень простую функцию контроллера и протестировать ее в совершенно новом проекте, и я до сих пор не получаю событие 'end' для запуска.
Это мой контроллер (индекс.js):
exports.testFunc = function(req, res) {
res.status(200).json({
status: 'success',
status_message: 'OK',
data: {
firstRun: true
}
});
}
И это мой тест (test.js):
let httpMocks = require('node-mocks-http');
let request = httpMocks.createRequest({
method: 'GET',
url: '/test',
});
let response = httpMocks.createResponse({
eventEmitter: require('events').EventEmitter
});
const loadingController = require('./index');
describe('loadingController:', () => {
describe('first_run_status: ', () => {
it('should really respond here', (done) => {
loadingController.testFunc(request, response);
response.on('end', () => {
done();
});
});
});
});
Это точный код, с которым я работаю
./node_modules/mocha/bin/_mocha ./test.js --timeout 10000 --exit
Это абсолютно отказывается выдавать событие 'end' и завершать тест ...
Это действительно сводит меня с ума, кто-нибудь может увидеть, что здесь не так?или что может сделать это не работает?
FYI когда я регистрирую объект ответа на консоли перед запуском testFunc, я вижу закончен: ложь и когда явойдите в систему после того, как я увижу
EventEmitter {
_headers: { 'content-type': 'application/json' },
cookies: {},
finished: true,
headersSent: true,
statusCode: 200,
....etc.
, что закончено: true , так почему бы не вызвать событие 'end'?