unit-test-module-mocking-with-actual-exports
Keep real exports and override only selected functions in Vitest.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Keep real exports and override only selected functions in Vitest.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create or update custom React hooks with clear API design, TypeScript-friendly patterns, and test-first workflow. Use when the user asks to make/build/create/modify a custom hook, refactor hook logic, or add/update hook tests.
Write and maintain unit tests with Vitest. Test titles MUST be English `it('should ...')` strings. Use when adding or updating unit tests, improving test coverage, or handling unavoidable coverage gaps with documented ignore comments.
Basic Vitest module mocking pattern with vi.mock.
Mocking patterns for Vitest unit tests. Read this only when mocking is required.
| name | unit-test-module-mocking-with-actual-exports |
| description | Keep real exports and override only selected functions in Vitest. |
Keep the real module and override only the exports you need.
import { vi } from 'vitest'
vi.mock('./api', async (importOriginal) => {
const actual = await importOriginal<typeof import('./api')>()
return {
...actual,
fetchUser: vi.fn().mockResolvedValue({ id: 1, name: 'test' }),
}
})
Use importOriginal only inside the factory (it is not valid to call it elsewhere). Spread actual first, then override specific named exports or default.