stock-bot/libs/http-client/test/mock-server.test.ts

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');
});
});