Как я могу проверить, что определенное поле (которое является массивом) в объекте содержит некоторые значения?
Ваш подход - хороший подход.
Вотпростой рабочий пример:
it('should work', () => {
const spy = jest.fn();
spy('fetch-part', {
parts: ['z', 'c', 'b', 'y', 'a', 'x'],
somethingElse: 'hello world'
});
expect(spy).toBeCalledWith('fetch-part', expect.objectContaining({
parts: expect.arrayContaining([
'a',
'b'
])
})); // Success!
});
Обновление
ФП упомянул в комментариях, что они решили использовать .mock.calls
, чтобы получитьаргумент и проверить его напрямую:
it('should work', () => {
const spy = jest.fn();
spy('fetch-part', {
parts: ['z', 'c', 'b', 'y', 'a', 'x'],
somethingElse: 'hello world'
});
expect(spy.mock.calls[0][1].parts).toContain('a', 'b'); // Success!
});