У меня есть следующий тест, но я получаю следующую ошибку: «API: невозможно получить токен API». Я пробовал использовать shallow вместо mount, но он возвращает ту же ошибку.
describe('CreateTemplateModal', () => {
let props, el
const modal = function () {
if (!el) el = mount(<CreateTemplateModal {...props} />)
return el
}
beforeEach(() => {
props = {
onSubmit: jest.fn().mockReturnValue(Promise.resolve()),
}
el = undefined
})
it('calls onSubmit when create template button is clicked', () => {
const el = modal().setState({
title: 'new template',
jurisdiction: 'nsw',
description: 'random',
})
el.find('#create-template-btn').simulate('submit')
expect(props.onSubmit).toHaveBeenCalled()
})
})
в модульном тестировании это обычный способ имитировать все, кроме модуля, который сейчас тестируется. это также означает имитацию вызовов API. см. примеры в разделе документации Мок-функции.





Поскольку вы издеваетесь над функцией onSubmit, я полагаю, что api не вызывается в функции onSubmit или после нажатия #create-template-btn.
Поскольку вы не поделились кодом CreateTemplateModal, я предлагаю проверить конструктор или функцию render() в компоненте CreateTemplateModal. Определенно был сделан вызов API токенов
не могли бы вы добавить код для
CreateTemplateModalили хотя бы ту часть, где называетсяonSubmit