37 lines
1.4 KiB
TypeScript
37 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);
|
||
|
});
|