Vitest Integration

MockMaster integrates seamlessly with Vitest for fast, modern testing.

npm install -D vitest

Setup

vitest.config.ts

import { defineConfig } from 'vitest/config'
 
export default defineConfig({
  test: {
    environment: 'node',
    globals: true,
    setupFiles: ['./tests/setup.ts']
  }
})

Basic Usage

import { describe, it, expect, beforeEach } from 'vitest'
import { readScenario } from '@mockmaster/cli'
import { createReplayHandler } from '@mockmaster/msw-adapter'
 
describe('User API', () => {
  let handler: ReturnType<typeof createReplayHandler>
 
  beforeEach(async () => {
    const scenario = await readScenario('./scenarios', 'user-api')
    handler = createReplayHandler(scenario)
  })
 
  it('fetches users', () => {
    const response = handler({ method: 'GET', path: '/users' })
 
    expect(response).toBeDefined()
    expect(response!.status).toBe(200)
    expect(response!.body).toBeInstanceOf(Array)
  })
 
  it('fetches user by ID', () => {
    const response = handler({ method: 'GET', path: '/users/123' })
 
    expect(response!.status).toBe(200)
    expect(response!.body).toMatchObject({
      id: expect.any(Number),
      name: expect.any(String),
      email: expect.stringMatching(/@/)
    })
  })
})

Complete Example

See MASTER_DOCUMENTATION.md for complete examples.