Adds commands for executing a mocked GraphQL server using only the client
npm install cypress-graphql-mock
Adds .mockGraphql() and .mockGraphqlOps() methods to the cypress chain.
The .mockGraphql should be called in the Cypress before or beforeEach block
config to setup the server. This method takes a schema, either in the form of one or more SDL files, or as the JSON result of an introspection query.
const schema = fs.readFileSync('../../app-schema.graphql', 'utf8');
// alternatively, using a dumped introspection query:
// const schema = require('../../dumped-schema.json')
beforeEach(() => {
cy.server();
cy.mockGraphql({ schema });
});By default, it will use the /graphql endpoint, but this can be changed
depending on the expected server implementation.
beforeEach(() => {
cy.server();
cy.mockGraphql({
schema,
endpoint: '/gql'
});
});It takes an "operations" object, representing the named operations of the GraphQL server. This is combined with the "mocks" option, to modify the output behavior per test.
The .mockGraphqlOps() allows you to configure the mock responses at a
more granular level
For example, if we has a query called "UserQuery" and wanted to explicitly force a state where a viewer is null (logged out), it would look something like:
.mockGraphqlOps({
operations: {
UserQuery: {
viewer: null
}
}
})MIT