Skip to content

Undefined Resolvers Have a Default? #160

@Sam-Kruglov

Description

@Sam-Kruglov

Editing this, I was confused about getting mock responses for queries I haven't mocked. This should be clearly communicated and it should be intuitive to opt out.

function createSchemaWithDefaultMocks<TResolvers>(

Before - getting unexpected responses:

import { createHandler } from '@apollo/graphql-testing-library'
import { TypeDefs } from '@/data/graphql/generated/typedefs'
import { Resolvers } from '@/data/graphql/generated/resolvers'

const mockRequestHandler = createHandler<Resolvers>({
  typeDefs: TypeDefs,
  resolvers: {},
  delay: 300
})

export default mockRequestHandler

After:

import { createHandlerFromSchema } from '@apollo/graphql-testing-library'
import { TypeDefs as typeDefs } from '@/data/graphql/generated/typedefs'
import { Resolvers } from '@/data/graphql/generated/resolvers'
import { makeExecutableSchema } from '@graphql-tools/schema'

const mockRequestHandler = createHandlerFromSchema<Resolvers>({
  schema: makeExecutableSchema({ typeDefs }),
  delay: 300
})

export default mockRequestHandler

The second issue that is not expected either, that now I don't get the default mocks but I get null responses instead. My expectation is that this would be considered unhandled by MSW and I could clearly see that with the default onUnhandledRequest option.

I understand that in terms of HTTP this is the same route but I'm sure it can be conditional, right?

results in

{
    "errors": [
        {
            "message": "Cannot return null for non-nullable field Query.myQuery.",
            "path": [
                "myQuery"
            ]
        }
    ],
    "data": null
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions