【发布时间】:2018-11-10 01:45:11
【问题描述】:
问题:我想测试一个位于 .graphql 文件中的 GraphQL 查询,如下所示:
#import '../../fragments/Widget.graphql'
query WidgetFragment($id: ID) {
readWidgetFragment(id: $id) {
...Widget
}
}
要使用模拟解析器和数据创建 GraphQL 架构,我使用来自 graphql-tools 的 makeExecutableSchema 和 addMockFunctionsToSchema。
要从一个笑话测试中运行查询,我的理解是我需要使用来自graphql-js 的graphql() 函数。
这个函数需要将查询作为字符串,所以我尝试了两种不同的方法,但都没有奏效:
- 将
.graphql文件解析为普通文本文件,给我原始字符串(在我的笑话配置中使用jest-raw-loader)。 当我运行查询时,这给了我:Failed: Errors in query: Unknown fragment "Widget".。 - 使用jest-transform-graphql 将
.graphql文件解析为query对象。我相信这应该是正确的方法,因为它应该正确解析任何导入的片段。但是,要执行查询,我需要将query.loc.source.body传递给graphql,这会导致与选项 1 相同的错误消息。
【问题讨论】:
标签: graphql jestjs graphql-js graphql-tag