ReactJs - ReferenceError: выборка не определена - PullRequest
1 голос
/ 05 июня 2019

После некоторых изменений в существующем компоненте у меня возникают проблемы в шутливых тестах. По сути, я добавил вызов функции componentDidMount к функции, которая выполняет внутреннюю «выборку», и теперь я получаю сообщение об ошибке при запуске шутных тестов

enter image description here

fetch вызывается в utils / index.ts, а этот вызывается из MyComponent.tsx

componentDidMount() {
    this.props.actions.requestLoadA();
    this.props.actions.requestLoadB();

    // Problematic call HERE
    this.getXPTOStatuses("something");  
}

getXPTOStatuses = (something: string) => {
            HttpUtility.get(`/api/getXPTOStatuses?param=${something}`)
                .then(response => handleFetchErrors(response))
                .then(data => {
                    // ....
                })
                .catch(error => {
                    // show the error message to the user -> `Could not load participant statuses. Error: '${error.message}'`                
                });
        }

и получить (...)

public static get = (url: string) => fetch(url, { method: "GET", headers: { Accept: "application/json" }, credentials: "same-origin" });

и шутка в деле: MyContainer.test.tsx

describe("Risk Import Container Tests", () => {
    let props: MyContainerProps;

    beforeEach(() => {
        props = initialProps;
    });

    it("Matches the snapshot", () => {
        const props = initialProps;        

        const tree = shallow(<MyContainer {...props} />);
        expect(tree).toMatchSnapshot();
    });
});

1 Ответ

0 голосов
/ 05 июня 2019

По умолчанию функция Enzymes shallow вызывает componentDidMount.Таким образом, это естественно вызвало бы использование fetch.

У вас есть 2 варианта, макет fetch.

Или используйте параметр shallow disableLifecycleMethods, чтобы отключитьвызов componentDidMount.

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