GraphQl-Tools иногда макет сервера пустой ответ
У меня проблема при создании ложных запросов во время тестирования. Это похоже на https://github.com/apollographql/graphql-tools/issues/192, но я не думаю, что это та же проблема. Я также создал проблему здесь: https://github.com/apollographql/graphql-tools/issues/875.
Я использую API Shopfront GraphQL Storefront для генерации моей схемы и создания mockServer следующим образом:
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
для того, чтобы загрузить схему.
Любые идеи с благодарностью. Проект звездный и делает тестирование по-настоящему радостным, поэтому я с нетерпением жду, чтобы все было настроено правильно. Спасибо за вашу помощь!