使用 Cypress .request 调用 GraphQL 端点

Call GraphQL endpoints using Cypress .request

我用谷歌搜索了 cypress request with graphql,但我看到很多人提到 mock up serverstub 等等。但是我无法找到如何将 GraphQL 与 cy.request.

一起使用的完整示例

也许你可以在使用 cy.request 时尝试这个,就像你在 cy.request

中使用 restful 的通常方式一样

例如您的查询名称是 findUser,变量为 username 您的查询应该类似于 findUser(username:"hello"){id, name} 等等

但不只是这个,你需要将它作为 json 传递,如果它是一个查询,那么它将是 {"query": findUser(username:"hello"){id, name}} 这实际上是你的 body.

示例如下...

const query = `{
  findUser(username:"hello") {
    id
  }
}`;
    
cy.request({
  url: 'http://localhost/graphql/',  // graphql endpoint
  body: { query },                   // or { query: query } depending if you are writing with es6
  failOnStatusCode: false            // not a must but in case the fail code is not 200 / 400
}).then((res) => {
  cy.log(res);
});

我添加 method: "post"

后,选择的答案对我有用
const query = `
  query getItems {
    items {
      items {
        id
      }
    }
  }
`;

cy.request({
  method: "post",
  url: 'http://localhost:4000/graphql',
  body: { query },
}).then((res) => {
  console.log(res.body);
});