Ваше утверждение
expect(navigation.navigate).toHaveBeenCalledWith("Modal", {onGoBack: onIndexChange(0)});
означает, что вы ожидаете, что navigation.navigate
будет вызван в качестве объекта с onGoBack
, который имеет значение результата onIndexChange
, вызванного с 0
но в вашей реализации значение onGoBack
является анонимной функцией
, поэтому, если вы можете утверждать, что функция была вызвана с объектом с функцией:
expect(navigation.navigate).toHaveBeenCalledWith("Modal", {
onGoBack: expect.any(Function)
});
и всякий раз, когда эта функция вызывается, она вызывает данный onIndexChange
describe('whenever the anonymous function is called', () => {
let onGoBack;
beforeAll(() => {
const [firstCall] = navigation.navigate.mock.calls;
[location, { onGoBack }] = firstCall;
onGoBack()
})
it('should call onIndexChange', () => {
expect(onIndexChange).toHaveBeenCalledWith(0);
});
});
рабочий пример (без React)