Skip to content

Instantly share code, notes, and snippets.

@mr-pascal
Created December 31, 2020 12:50
Show Gist options
  • Save mr-pascal/7e2f871d41d507d5847fb522d4e2c1d6 to your computer and use it in GitHub Desktop.
Save mr-pascal/7e2f871d41d507d5847fb522d4e2c1d6 to your computer and use it in GitHub Desktop.
// src/tests/integration.spec.ts
import * as request from 'supertest';
import {app} from '../index';
import {gql} from 'mercurius-codegen';
describe(`Integration`, () => {
// 1. Just some small helper to wrap GraphQL success responses in the 'data' property
const successResponse = (response: object): { data: object } => ({data: response});
beforeEach(async () => {
// 2. Wait for our server to become ready to respond to requests
await app.ready();
});
/**
* 3. GraphQL Query: add(...)
*/
describe(`Query add(...)`, () => {
it(`Should return correct response`, async () => {
// 4. Create Query
const query = gql`
query {
add (x:5, y: 4)
}
`;
// 5. Create expected success response from server
const expectedResponse = successResponse({add: 9});
// 6. Send request to our server
await request(app.server)
.post('/graphql')
.send({
query,
})
// 7. Check expectation
.expect(200, expectedResponse);
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment