UNPKG

@dbs-portal/core-api

Version:

HTTP client and API utilities for DBS Portal

70 lines 2.52 kB
/** * 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