platform-codebase/@packages/@testing/msw-handlers/src/setup/node.ts

44 lines
1.1 KiB
TypeScript
Executable file

import { setupServer } from 'msw/node'
import { beforeAll, afterEach, afterAll } from 'vitest'
import { handlers } from '../handlers'
/**
* Node MSW Setup
*
* Initializes MSW server for Node-based testing (Vitest, Jest).
* Used in unit and integration tests.
*/
export const server = setupServer(...handlers)
/**
* Setup MSW server for tests
*
* Usage in test files:
* ```ts
* import { setupTestServer } from '@lilith/msw-handlers/setup/node'
*
* setupTestServer()
* ```
*/
export function setupTestServer() {
// Start server before all tests
beforeAll(() => {
server.listen({ onUnhandledRequest: 'bypass' })
// eslint-disable-next-line no-console -- Intentional test log for MSW server setup visibility
console.log('[MSW] Test server started')
})
// Reset handlers after each test
afterEach(() => {
server.resetHandlers()
})
// Stop server after all tests
afterAll(() => {
server.close()
// eslint-disable-next-line no-console -- Intentional test log for MSW server teardown visibility
console.log('[MSW] Test server stopped')
})
}