Краткое описание проблемы Получение : Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Timeout
при попытке запустить тест с Jest и супертестом.
Спецификации Проект Koa2, тестирование Jest / Supertest, Babel 7.9 .0 рекомендуемая конфигурация
Что я пробовал У меня есть простой тест из того же файла, который я пропустил для краткости из приведенного ниже кода. Я также попытался отправить HTTP-запрос из браузера - этот файл импортируется и «прослушивается» в файле сервера. Запрос не выполняется, потому что он заблокирован политикой CORS - я думаю, что это проблема для другого дня, и это не влияет на время ожидания моего теста.
Я также пытался удалить .callback()
из супер-теста (. .) Звоните:
const response = await supertest(app).post('/save-material');
- , в этот момент я получаю
TypeError: app.dress is not a function.
Вот содержимое моего тестового файла:
process.env.NODE_ENV = 'test';
const app = require('../../src/server/app.js')
const supertest = require('supertest')
test('save-material returns response', async() => {
const response = await supertest(app.callback()).post('/save-material');
expect(response.status).toBe(200);
expect(response.body.status).toBe('success');
expect(response.body.msg).toBe('Material saved')
});
Вот содержимое импортированного файла (приложение. js) сверху:
require('@babel/register'); // not entry point - but is entry point for some tests
const Koa = require('koa');
var Router = require('koa-router')
const app = new Koa();
const router = new Router();
router
.post('/save-material', async(ctx) => {
ctx.response = {
status: 'success',
msg: 'Material saved'
}
return ctx;
})
app.use(router.routes());
app.use(router.allowedMethods());
module.exports = app;