Migration Guide

Migration Guide

Migrate to MockMaster from other testing solutions or upgrade between versions.


From Jest Mocks

Before (Jest Mocks)

// __mocks__/api.ts
export const fetchUser = jest.fn().mockResolvedValue({
  id: 1,
  name: 'John Doe'
})
 
// user.test.ts
import { fetchUser } from './api'
jest.mock('./api')
 
test('displays user', async () => {
  const user = await fetchUser(1)
  expect(user.name).toBe('John Doe')
})

After (MockMaster)

// user.test.ts
import { readScenario } from '@mockmaster/cli'
import { createReplayHandler } from '@mockmaster/msw-adapter'
 
test('displays user', async () => {
  const scenario = await readScenario('./scenarios', 'user-api')
  const handler = createReplayHandler(scenario)
 
  const response = handler({ method: 'GET', path: '/users/1' })
 
  expect(response.body.name).toBe('John Doe')
})

Version Migration

From v1.x to v2.x

Package Structure Changes:

v1.x:

import { createScenario } from '@mockmaster/core'
import { build } from '@mockmaster/core'

v2.x:

import { createScenario } from '@mockmaster/msw-adapter'
import { build } from '@mockmaster/data'

Factory API Changes:

v1.x:

const factory = createFactory('user', {
  id: (ctx) => ctx.sequence(),
  name: () => faker.person.fullName()
})

v2.x:

const factory = defineFactory('user', {
  id: (ctx) => ctx.sequence('user'), // Named sequence required
  name: () => fake.person.fullName() // Use 'fake' instead of 'faker'
})

Complete Documentation

For complete migration examples and detailed instructions, see the Migration Guide section in MASTER_DOCUMENTATION.md.


Next Steps