Тесты снимков не работают после замены обычного импорта на шутку с ленивым импортом - PullRequest
0 голосов
/ 13 июля 2020

До того, как я заменил импорт на React.lazy, все тесты прошли нормально. Но после замены журнал ошибок сообщил мне, что какой-то код вызвал исключение (но без подробностей об ошибке)

 A React component suspended while rendering, but no fallback UI was specified.

    Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.
        in Unknown (created by Context.Consumer)
        in Route (created by SuspenseComponent)
        in SuspenseComponent
        in Router
        in Provider
at throwException (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11518:13)
      at handleError (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12502:7)
      at callback (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:12336:9)
      at eventHandler (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1825:24)
      at Scheduler_runWithPriority (node_modules/scheduler/cjs/scheduler.development.js:653:12)
      at runWithPriority (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1775:10)
      at flushSyncCallbackQueueImpl (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1820:7)
      at flushSyncCallbackQueue (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:1808:3)
      at scheduleWork (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:11776:9)
      at updateContainer (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:14747:3)
      at Object.create (node_modules/react-test-renderer/cjs/react-test-renderer.development.js:15455:5)
      at checkOrCreateTheSnapshotOfState (__test__/user.test.js:27:34)
      at Object.<anonymous> (__test__/user.test.js:48:9)

Итак, у меня есть код, который проверяет снимок

const checkOrCreateTheSnapshotOfState = (state, path) => {
    let store;
    const mockStore = configureStore([thunk]);
    store = mockStore(state);
    const history = createMemoryHistory();
    history.push('/' + path);
    const SuspenseComponent = () => {
        return <Suspense fallback={"Loading..."}><Route exact
                                                        path="/:user"
                                                        component={User}/></Suspense>
    };
    const element = renderer.create(<Provider store={store}><Router
        history={history}><SuspenseComponent/></Router></Provider>).toJSON();

    expect(element).toMatchSnapshot();
};
it("should render User component correctly when user is found and another user authed and post is active", () => {
        checkOrCreateTheSnapshotOfState(userState.userAuthedAndPostIsActive, userData.login);
    });

Итак, проблема в что я не знаю, что не так с кодом компонента и тестирования, потому что, когда я запускаю приложение, все работает нормально. В приведенном выше коде я добавил задержку, но она всегда получает сообщение «Загрузка ...», что мне делать? Ждать каких-то ленивых компонентов, может быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...