belgattitude/nextjs-monorepo-example

View on GitHub
apps/nextjs-app/e2e/api/graphql/index.spec.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { test, expect } from '@playwright/test';
import { isNonEmptyString, isParsableNumeric } from '@your-org/ts-utils';

test('should call the getUser graphql endpoint', async ({ request }) => {
  const resp = await request.post('/api/graphql', {
    data: {
      query: `query { getUser(id: 1) { email, id } }`,
    },
  });
  await expect(resp).toBeOK();
  const headers = resp.headers();
  expect(headers['content-type']).toEqual('application/json; charset=utf-8');
  const json = (await resp.json()) as {
    data?: { getUser?: { id: string; email: string } };
  };
  const { id, email } = json?.data?.getUser ?? {};
  expect(isNonEmptyString(email)).toBeTruthy();
  expect(isParsableNumeric(id)).toBeTruthy();
});