Почему запуск Cypress в приложении React / GraphQL возвращает сетевые ошибки, а при обычном просмотре - нет? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть клиент React / apollo и серверное приложение apollo / neo4j, основанное на GRANDStack. Мое приложение React работает на localhost: 3000, а мой GraphQL на localhost: 4001 / graphql, и они общаются без сбоев. В приложении все работает хорошо (с включенным CORS), но я хотел реализовать тестирование с Cypress.

Стоит ли ожидать, что Cypress сможет наблюдать за потоком между React и GraphQL без ошибок? Или это за пределами его возможностей?

Что я пробовал: Я установил Cypress и провел следующий тест:

it("Opens myPlan.", function() {
    cy.visit("localhost:3000/myPlan");
    cy.wait(6000);
});

При первой установке Cypress мой сайт загружен. Первое, что делает приложение, это graphql запрашивает несколько значений и создает раскрывающийся список на основе этих значений. В то время как этот и все другие запросы graphql отлично работают в браузере, я получаю "{"graphQLErrors":[],"networkError":{"name":"ServerParseError","response":{},"statusCode":404,"bodyText":""},"message":"Network error: Unexpected end of JSON input"}" ошибок в cypress для того же кода.

Предположительно, проблема заключалась в том, что существует 2 конечных точки, а cy.visit позволяет только одну , Я попытался отключить ChromeWebSecurity и попробовал плагин «Access-Control-Allow-Origin-master».

Редактировать: Я нашел кого-то, кто знал Cypress, и они предложили добавить:

"proxy": "http://localhost:4001/",

на мой конфиг клиента. Это позволяет избежать проблем с несколькими портами, и Cypress работает.

1 Ответ

0 голосов
/ 18 марта 2020

Редактировать : Я нашел кого-то, кто знал Cypress, и они предложили добавить:

"proxy": "http://localhost:4001/",

в мою конфигурацию реагирующего клиента. Это позволяет избежать проблем с несколькими портами, и Cypress работает.

...