10

我想按照这种模式graphql-tools/addMockFunctionsToSchema在模拟解析器中模拟错误响应:

const mocks = {
  ...,
  Mutation: () => ({
    getToken: (_, { password }) => {
      if (password === 'password') {
        return { value: casual.uuid }
      } else {
        throw new Error('Incorrect email or password')
      }
    }
  })
}

const schema = makeExecutableSchema({`
  type Token { value: ID! }
  type Mutation {
     getToken(email: String!, password: String!): Token
  }
`});

addMockFunctionsToSchema({ schema, mocks});

这可以正常工作并且确实返回 GraphQL 错误,但是:

  1. 看起来它只是返回一个错误,因为它是一个内部服务器错误,抛出这一
  2. 我想模拟一个实际的 GraphQL 错误响应,表明用户输入无效
4

1 回答 1

1

我今天只是在研究这个问题。事实证明,您应该只返回错误而不是抛出错误。

  Mutation: () => ({
    getToken: (_, { password }) => {
      if (password === 'password') {
        return { value: casual.uuid }
      } else {
        return new Error('Incorrect email or password')
      }
    }
  })
于 2021-02-26T20:53:35.157 回答