【发布时间】:2021-11-11 05:47:23
【问题描述】:
这似乎是一个长期存在的问题:
在 cypress 界面中,我的应用程序无法发送任何 graphql 请求或接收任何响应。因为是fetch类型。
这是cypress中的网络状态:
但在普通浏览器中,我实际上有几个 graphql 请求,比如这里:
我知道已经有很多讨论和解决方法,例如使用 polyfill 来解决这个问题,如下所示:
- https://gist.github.com/yagudaev/2ad1ef4a21a2d1cfe0e7d96afc7170bc
- Cypress does not intercept GraphQL API calls
但不幸的是,它们不适用于我的情况。
感谢任何形式的帮助。
p.s.:我使用的是 cypress 8.3.0,React 作为前端,并且使用 apollo 客户端和 apollo 服务器来处理所有 graphql 的东西。
编辑:
同样的拦截:
cy.intercept('POST', Cypress.env('backendpiUrl') + '/graphql', req => {
if (req.body.operationName === 'updateItem') {
req.alias = 'updateItemMutation';
}
});
cypress 控制台示例:
可以看到所有的请求都是基于XHR的,没有graphql的fetch请求
【问题讨论】:
标签: graphql cypress apollo-client e2e-testing apollo-server