Символ не является функцией реагировать на фермент ошибка i18n

Когда я тестирую свой проект реакции с помощью шутки и энзима, я сталкиваюсь с этой проблемой, `TypeError: символ не является функцией

  44 | test('PROVA', () => {
> 46 |     const wrapper = mount(<I18nextProvider i18n = {i18n}><MemoryRouter><LoggedSearch t = {(k) => 'translate hardcoded'} userData = {Artist}/></MemoryRouter></I18nextProvider>,{context});
     |                     ^
  47 |     console.info(wrapper.debug());
  48 |     wrapper.find('#ButtonSearch').simulate('click', { preventDefault() {} });
  49 |     expect(true).toBe(true)

  at setValueForProperty (../node_modules/react-dom/cjs/react-dom.development.js:2909:46)

Теперь это мой тест

test('PROVA', () => {
    //const wrapper = mount(<LoggedSearch t = {key=>key} userData = {Artist}/>);
    const wrapper = mount(<I18nextProvider i18n = {i18n}><MemoryRouter><LoggedSearch t = {(k) => 'translate hardcoded'} userData = {Artist}/></MemoryRouter></I18nextProvider>,{context});
    console.info(wrapper.debug());
    wrapper.find('#ButtonSearch').simulate('click', { preventDefault() {} });
    expect(true).toBe(true)
});

В <LoggedSearch/> компонент экспортируется с именованным экспортом и импортируется в мой тестовый файл как import {LoggedSearch} from "../components/LoggedSearch";. Значит, компонент должен быть импортирован в чистом виде, без декора, как i18n, верно? . Я не понимаю, почему тест не проходит с этой ошибкой TypeError: symbol is not a function, я думаю, что это проблема i18n, потому что, когда я использую мелкую глубину вместо монтирования, она работает, но я не могу проверить функцию с мелкой. Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
2
0
3 598
2

Ответы 2

Я не уверен, что это именно ваша проблема, но это может быть связано с тем, как вы импортируете изображения через веб-пакет, импортируя. Это могло быть похоже на проблему это.

У меня была такая же проблема, это было связано с изображениями, импортированными через веб-пакет. Я решил это, создав fileMock.js с:

module.exports = 'test-file-stub';

Тогда в конфигурации шутки:

"moduleNameMapper": {
    "\\.(css|scss)$": "identity-obj-proxy",
    "\\.(png|svg|pdf|jpg|jpeg)$": "<rootDir>/__mocks__/fileMock.js"
}

Подробнее здесь: https://jestjs.io/docs/en/webpack

Другие вопросы по теме