38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
import { validate, NIL } from 'uuid';
|
|
import { requestIdHeader } from '$lib';
|
|
|
|
test('response contains request-id header', async ({ playwright }) => {
|
|
const context = await playwright.request.newContext();
|
|
const response = await context.get('health');
|
|
const headers = response.headers();
|
|
await expect(headers).toHaveProperty(requestIdHeader);
|
|
});
|
|
|
|
test('request-id is valid uuid', async ({ playwright }) => {
|
|
const context = await playwright.request.newContext();
|
|
const response = await context.get('health');
|
|
const headers = response.headers();
|
|
const requestId = headers[requestIdHeader];
|
|
await expect(validate(requestId)).toBe(true);
|
|
});
|
|
|
|
test('reuse valid incoming uuid', async ({ playwright }) => {
|
|
const context = await playwright.request.newContext();
|
|
|
|
const response = await context.get('health', { headers: { [requestIdHeader]: NIL } });
|
|
const headers = response.headers();
|
|
const requestId = headers[requestIdHeader];
|
|
await expect(requestId).toBe(NIL);
|
|
});
|
|
|
|
test('ignore invalid incoming uuid', async ({ playwright }) => {
|
|
const invalid = '00000000-0000-0000-0000-00000000000z';
|
|
const context = await playwright.request.newContext();
|
|
|
|
const response = await context.get('health', { headers: { [requestIdHeader]: invalid } });
|
|
const headers = response.headers();
|
|
const requestId = headers[requestIdHeader];
|
|
await expect(requestId).not.toBe(invalid);
|
|
});
|