Проблема: я хотел бы протестировать запрос GraphQL, который находится в файле .graphql
следующим образом:
#import '../../fragments/Widget.graphql'
query WidgetFragment($id: ID) {
readWidgetFragment(id: $id) {
...Widget
}
}
Чтобы создать схему GraphQL с имитацией распознавателей и данных, я использую makeExecutableSchema
и addMockFunctionsToSchema
из graphql-tools. .
Насколько я понимаю, чтобы выполнить запрос из шутливого теста, мне нужно использовать функцию graphql()
из graphql-js.
Этой функции нужен запрос в виде строки, поэтому я попробовал два разных способа, но ни один из них не сработал:
- Разберите файл
.graphql
как обычный текстовый файл, предоставив мне необработанную строку (используя jest-raw- загрузчик в моей конфигурации jest). Это дает мне:Failed: Errors in query: Unknown fragment "Widget".
когда я запускаю запрос. - Преобразуйте файл
.graphql
в объектquery
, используя jest-transform-graphql. Я считаю, что это должен быть правильный подход, потому что он должен корректно разрешать любые импортированные фрагменты. Однако для выполнения запроса мне нужно передатьquery.loc.source.body
вgraphql
, что приводит к тому же сообщению об ошибке, что и вариант 1.