Самый простой подход - использовать .resolves
, как вы начали делать в своем образце.
Вам просто нужно связать .toMatchObject
срезультат:
function myFunc () {
return Promise.resolve({
anArray: [1,2,3,4,5,6]
})
}
describe('myFunc', () => {
it('returns array of length 6', () => {
expect(myFunc()).resolves.toMatchObject({ anArray: [1,2,3,4,5,6] }); // Success!
})
})
Это будет означать, что для объекта не менее свойство anArray
установлено в [1,2,3,4,5,6]
(оно может иметь и другие свойства).
Обратите внимание, что PR 5364 делает так, что resolves
проверяет свои аргументы синхронно , поэтому вам даже не нужно return
, await
или использовать done
, еслиВы используете Jest
> = v22.2.0
.
Обновление
Похоже, что цель состоит только в установить длину массива .
. Для этого вам нужно получить результат Promise
(как было описано в предыдущих ответах), затем использовать .toHaveLength
для подтверждения длины свойства anArray
:
describe('myFunc', () => {
it('returns array of length 6', async () => {
const result = await myFunc();
expect(result.anArray).toHaveLength(6); // Success!
})
})