Я получаю следующую проблему, пытаясь протестировать минималистский пример с supertest
(и jest
):
Timeout - Async callback was not invoked within the 60000ms timeout specified by jest.setTimeout.
Обратите внимание, что это не дублирует другие проблемы наТАК, как я понял проблему даже после значительного увеличения значения тайм-аута по умолчанию с помощью Jasmine.Я склонен полагать, что проблема может быть связана с использованием resource-router-middleware
, и этот пост может быть полезен для других.
Мой полный пример:
foo.js
import resource from 'resource-router-middleware'
export default () => resource({
id: 'foo',
create: [
(req, res) => {
res.status(201).json({ 'foo': 'bar' })
}
]
})
foo.test.js
import request from 'supertest'
import foo from 'foo'
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
test('create should return 201', () => {
return request(foo).post('/').then(response => {
expect(response.statusCode).toBe(201)
})
})
Полная ошибка
FAIL foo.test.js (61.578s)
✕ create should return 201 (60047ms)
● create should return 201
Timeout - Async callback was not invoked within the 60000ms timeout specified by jest.setTimeout.
4 | jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000
5 |
> 6 | test('create should return 201', () => {
| ^
7 | return request(foo).post('/').then(response => {
8 | expect(response.statusCode).toBe(201)
9 | })
at Spec (node_modules/jest-jasmine2/build/jasmine/Spec.js:85:20)
at Object.test (foo.test.js:6:1)