graphql-tools模拟服务器空响应有时

时间:2018-07-09 14:03:29

标签: graphql graphql-js graphql-tools

在测试时进行模拟查询时遇到问题。它类似于https://github.com/apollographql/graphql-tools/issues/192,但我认为不是同一问题。我还在这里创建了一个问题:https://github.com/apollographql/graphql-tools/issues/875

我正在使用Shopify GraphQL Storefront API生成我的架构并像这样构建模拟服务器:

import { importSchema } from 'graphql-import'

let typeDefsString = importSchema('schema.graphql')
const typeDefs = typeDefsString += `
  schema {
    query: QueryRoot
    mutation: Mutation
  }
`
const mockStorefront = mockServer(typeDefs)

进行某些查询没有问题,但其他查询则没有问题。 Shopify具有一个Node接口,该接口可以通过其他类型实现为全局标识符:

"""An object with an ID to support global identification."""
interface Node {
  """Globally unique identifier."""
  id: ID!
}

我正在尝试查询实现Node的类型:

const getCheckout = `
  query checkoutQuery ($checkoutId: ID!) {
    node (id: $checkoutId) {
      ... on Checkout {
        id
      }
    }
  }
`

mockStorefront.query(getCheckout, {
  checkoutId: 5
}).then(res => console.log(res))

预期结果: 我收到结帐id

的回复

实际结果: 我几乎总是得到一个空的答复,像这样:

data {
  node {
  }
}

但是有时候,也许我每运行5次测试,id实际就会返回响应,这让我有些困惑。其他查询工作正常,只有这个查询给我带来了问题。

如何重现该问题:

这里是我的.graphqlconfig,用于拉取架构。这是针对开发站点的。

{
  "projects": {
    "meural-sales": {
      "schemaPath": "schema.graphql",
      "extensions": {
        "endpoints": {
          "dev": {
            "url": "https://meural-v4.myshopify.com/api/graphql",
            "headers": {
              "X-Shopify-Storefront-Access-Token": "9108b7de01b71e00155b8cee3cac6f29"
            }
          }
        }
      }
    }
  }
}

然后运行:

./node_modules/.bin/graphql get-schema dev

实际获取模式。然后安装graphql-import以便加载架构。

任何想法都非常感谢。该项目非常出色,使测试变得非常有趣,因此我期待正确设置所有项目。感谢您的帮助!

0 个答案:

没有答案