问题:我想测试一个位于 .graphql
文件中的GraphQL查询,如下所示:
#import '../../fragments/Widget.graphql'
query WidgetFragment($id: ID) {
readWidgetFragment(id: $id) {
...Widget
}
}
要使用模拟的解析器和数据创建GraphQL架构,我使用 makeExecutableSchema
和 addMockFunctionsToSchema
来自graphql-tools .
要从jest测试中运行查询,我的理解是我需要使用graphql-js中的 graphql()
函数 .
这个函数需要查询为 string ,所以我尝试了两种不同的方法,但它们都没有工作:
-
将
.graphql
文件解析为普通文本文件,给我原始字符串(使用我的jest配置中的jest-raw-loader) . 这给了我:Failed: Errors in query: Unknown fragment "Widget".
当我运行查询时 . -
使用jest-transform-graphql将
.graphql
文件解析为query
对象 . 我认为这应该是正确的方法,因为它应该正确解决任何导入的碎片 . 但是,要执行查询,我需要将query.loc.source.body
传递给graphql
,这会产生与选项1相同的错误消息 .