AppSync GraphQL模拟解析器映射未生成唯一项

时间:2018-12-21 07:54:16

标签: javascript mocking graphql aws-appsync resolver

我的模拟不是为每个项目生成唯一的数据,而是每个项目具有相同的字段值。

选项1:(理想方法,错误结果)

AppSync模式拥有items的{​​{1}}字段,如果我自己放置[Model]解析器,则Model列表中的所有Model都有相同的值。

items

导致... Results


选项2:(替代方法,正确的结果)

const mocks = {
  ModelModelConnection: () => ({
    items: () => new MockList(5),
  }),
  Model: () => ({
    id: casual.uuid,
    name: casual.title,
  }),
};

Results


我想使用选项1,但似乎无法模拟出唯一的项目。一直在挠我的头。预先感谢!

1 个答案:

答案 0 :(得分:1)

the docs所示,如果您想在每次触发字段的解析程序时生成一个不同的值,则模拟解析程序应该是一个函数,而不是一个值。所以代替:

Model: () => ({
  id: casual.uuid,
  name: casual.title,
}),

您应该这样做:

Model: () => ({
  id: () => casual.uuid,
  name: () => casual.title,
}),

这导致每次解析该字段时都会调用idname