GraphQL Tools and Testing

Development tools and testing

GraphQL Playground

# Interactive GraphQL IDE
# Query editor with autocomplete
# Schema documentation
# Request history

Introspection Query

query {
    __schema {
        types {
            name
        }
    }
} # query schema structure

Type Introspection

query {
    __type(name: "User") {
        name
        fields {
            name
            type {
                name
            }
        }
    }
} # inspect specific type

Apollo Client

import { useQuery, gql } from '@apollo/client';
const GET_USER = gql`
    query GetUser($id: ID!) {
        user(id: $id) { name }
    }
`; # client query

Testing Resolvers

test('user resolver', async () => {
    const result = await resolvers.Query.user(
        {},
        { id: '1' },
        { db },
        {}
    );
    expect(result.name).toBe('John');
}); # unit test resolver