vi.fn & Return Values in Vitest
From the Vitest cheat sheet · Mock Functions · verified Nov 2026
vi.fn & Return Values
Create mock functions and control what they return, resolve, or throw
typescript
const getUser = vi.fn()
getUser.mockReturnValue({ id: 1 })
getUser.mockReturnValueOnce({ id: 2 }) // next call only
getUser.mockResolvedValue({ id: 1 }) // returns a promise
getUser.mockRejectedValueOnce(new Error('offline'))
getUser.mockImplementation((id: number) => ({ id }))
getUser.mockThrow(new Error('boom')) // 4.1+🟢 vi.fn() with no implementation returns undefined
💡 Pass a signature generic: vi.fn<(id: number) => User>()
📌 Once values are used first, then the default return value
⚡ mockResolvedValue is shorthand for an async implementation
vi.fnmockReturnValuemockResolvedValue
Continue with Vitest
Save the full cheat sheet or work through every related task.