@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
70 lines • 2.52 kB
JavaScript
/**
* MSW minimal test to verify core functionality
*/
import { describe, it, expect, beforeAll, afterAll, afterEach } from 'vitest';
import { http, HttpResponse } from 'msw';
import { setupServer } from 'msw/node';
import { createApiUrl, MSW_HEADERS } from './msw-utils';
// Create a simple test server
const server = setupServer(
// Test handler with full URL
http.get(createApiUrl('/api/test'), () => {
return HttpResponse.json({ success: true, message: 'Test endpoint' });
}));
describe('MSW Core Functionality', () => {
beforeAll(() => {
// Start MSW server
server.listen({ onUnhandledRequest: 'error' });
});
afterEach(() => {
// Reset handlers between tests
server.resetHandlers();
});
afterAll(() => {
// Clean up after tests
server.close();
});
it('should intercept network requests', async () => {
const response = await fetch(createApiUrl('/api/test'), {
headers: MSW_HEADERS
});
const data = await response.json();
expect(response.ok).toBe(true);
expect(data.success).toBe(true);
expect(data.message).toBe('Test endpoint');
});
it('should allow dynamic handler registration', async () => {
server.use(http.get(createApiUrl('/api/dynamic'), () => {
return HttpResponse.json({ dynamic: true });
}));
const response = await fetch(createApiUrl('/api/dynamic'), {
headers: MSW_HEADERS
});
const data = await response.json();
expect(response.ok).toBe(true);
expect(data.dynamic).toBe(true);
});
it('should handle request methods correctly', async () => {
server.use(http.post(createApiUrl('/api/methods'), async ({ request }) => {
const body = await request.json();
return HttpResponse.json({
method: request.method,
receivedData: body
});
}));
const testData = { key: 'value' };
const response = await fetch(createApiUrl('/api/methods'), {
method: 'POST',
headers: {
'Content-Type': 'application/json',
...MSW_HEADERS
},
body: JSON.stringify(testData)
});
const data = await response.json();
expect(response.ok).toBe(true);
expect(data.method).toBe('POST');
expect(data.receivedData).toEqual(testData);
});
});
//# sourceMappingURL=msw-minimal.test.js.map