У меня есть клиент 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 работает.