在测试时进行模拟查询时遇到问题。它类似于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
以便加载架构。
任何想法都非常感谢。该项目非常出色,使测试变得非常有趣,因此我期待正确设置所有项目。感谢您的帮助!