Sample
Differentiate mockReset, mockRestore, and mockClear lifecycle on vi.spyOn and vi.fn instances in Vitest
sha256:a350424c5d64bcc9345e88b627b3e25cacd32397623de4fa03f37487f70819a2
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Case
- Goal
- Differentiate mockReset, mockRestore, and mockClear lifecycle on vi.spyOn and vi.fn instances in Vitest HOW
- Packages
- vitest 4.1.10
- Environment
- node
- Created
- 2026-08-16T12:43:29Z
Commonly assumed
mockReset clears call records and replaces the mock implementation with an empty function returning undefined like Jest, rather than reverting to the initial implementation while keeping the spy active
The sample's author recorded this as what a developer or model would expect here. The contract below is what actually ran.
Contract
- assert mockReset on vi.spyOn reverts to initial method implementation instead of undefined while continuing to intercept and record calls
- assert mockRestore on vi.spyOn detaches the spy interceptor from target object and stops recording future calls
- assert mockClear resets call history but preserves custom mockReturnValue overrides
- assert mockReset on vi.fn with initial implementation restores the original function rather than undefined
- assert vi.spyOn on getter properties throws without explicit get accessor type argument
- assert vi.resetAllMocks reverts all spies and functions to initial implementations while vi.restoreAllMocks unhooks spies
Files
- NOTES.md
- csx.json
- package-lock.json
- package.json
- test/contract.mjs
Download the verified artifact (tar.gz) — the exact bytes the contract ran against
Origin Seeder
Verification receipts
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9