49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { describe, test, expect, beforeAll, afterAll } from 'bun:test';
|
|
import { MockServer } from './mock-server.js';
|
|
|
|
describe('Mock Server Tests', () => {
|
|
let mockServer: MockServer;
|
|
let baseUrl: string;
|
|
|
|
beforeAll(async () => {
|
|
mockServer = new MockServer();
|
|
await mockServer.start();
|
|
baseUrl = mockServer.getBaseUrl();
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await mockServer.stop();
|
|
});
|
|
|
|
test('should return status codes', async () => {
|
|
const response = await fetch(`${baseUrl}/status/200`);
|
|
expect(response.status).toBe(200);
|
|
|
|
const response404 = await fetch(`${baseUrl}/status/404`);
|
|
expect(response404.status).toBe(404);
|
|
});
|
|
|
|
test('should handle headers endpoint', async () => {
|
|
const response = await fetch(`${baseUrl}/headers`, {
|
|
headers: {
|
|
'X-Test-Header': 'test-value'
|
|
}
|
|
});
|
|
expect(response.status).toBe(200);
|
|
const data = await response.json();
|
|
expect(data.headers['x-test-header']).toBe('test-value');
|
|
});
|
|
|
|
test('should handle basic auth', async () => {
|
|
const credentials = btoa('user:pass');
|
|
const response = await fetch(`${baseUrl}/basic-auth/user/pass`, {
|
|
headers: {
|
|
'Authorization': `Basic ${credentials}`
|
|
}
|
|
});
|
|
expect(response.status).toBe(200);
|
|
const data = await response.json();
|
|
expect(data.authenticated).toBe(true);
|
|
expect(data.user).toBe('user');
|
|
});
|
|
});
|