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 для того, чтобы загрузить схему.

Любые идеи с благодарностью. Проект звездный и делает тестирование по-настоящему радостным, поэтому я с нетерпением жду, чтобы все было настроено правильно. Спасибо за вашу помощь!

0 ответов

Другие вопросы по тегам