Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to return a GraphQL error in graphql-tools addMockFunctionsToSchema?

I'd like to mock an error response in graphql-tools/addMockFunctionsToSchema mock resolver following this pattern:

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});

This works OK and does return a GraphQL error but:

  1. It looks like it's only returning an error because it's an internal server error, throwing on this line.
  2. I'd like to mock an actual GraphQL error response indicating that the user input was invalid
like image 533
tgk Avatar asked Apr 14 '18 15:04

tgk


1 Answers

I was just looking into this issue today. It turns out that you should just return the error instead of throwing one.

  Mutation: () => ({
    getToken: (_, { password }) => {
      if (password === 'password') {
        return { value: casual.uuid }
      } else {
        return new Error('Incorrect email or password')
      }
    }
  })
like image 103
denixtry Avatar answered Oct 15 '22 13:10

denixtry