0

我有一个 React/apollo 客户端和一个基于 GRANDStack 的 apollo/neo4j 后端应用程序。我的 React 应用程序在 localhost:3000 上运行,我的 GraphQL 在 localhost:4001/graphql 上运行,它们之间的通信没有失败。应用程序中一切正常(启用了 CORS),但我想用赛普拉斯实现测试。

我是否应该期望 Cypress 能够无误地观察 React 和 GraphQL 之间的流程?或者这超出了它的能力范围?

我尝试过的: 我设置了赛普拉斯并运行了以下测试:

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

在第一次赛普拉斯设置时,我的网站已加载。该应用程序所做的第一件事是 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”插件。

编辑:我找到了认识赛普拉斯的人,他们建议添加:

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

到我的反应客户端配置。这避免了多端口问题,并且赛普拉斯工作。

4

1 回答 1

0

编辑:我找到了认识赛普拉斯的人,他们建议添加:

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

到我的反应客户端配置。这避免了多端口问题,并且赛普拉斯工作。

于 2020-03-18T11:12:08.490 回答