Skip to content

fix: stale mock metadata breaks automocking with isolate:false#10147

Closed
kade-robertson wants to merge 1 commit into
vitest-dev:mainfrom
kade-robertson:fix-stale-isolate-mock
Closed

fix: stale mock metadata breaks automocking with isolate:false#10147
kade-robertson wants to merge 1 commit into
vitest-dev:mainfrom
kade-robertson:fix-stale-isolate-mock

Conversation

@kade-robertson
Copy link
Copy Markdown

When fetchModule returns early for a manual/redirect mock, it bakes mockedModule (with code: '') into the module node's meta. With isolate:false this metadata persists across test files. If a later file registers an automock for the same module, cachedRequest was using the stale manual mock from meta instead of the current automock from the registry, and requestWithMockedModule could not evaluate the module because the meta carried empty code.

Re-read the current mock from the registry and compare it against the one stored in meta. When they differ, re-fetch the actual module via _vitest_original so requestWithMockedModule receives a node with real code to automock against.

Regression introduced in a8216b0 (#9774).

When fetchModule returns early for a manual/redirect mock, it bakes
`mockedModule` (with code: '') into the module node's meta. With
isolate:false this metadata persists across test files. If a later
file registers an automock for the same module, cachedRequest was
using the stale manual mock from meta instead of the current automock
from the registry, and requestWithMockedModule could not evaluate the
module because the meta carried empty code.

Re-read the current mock from the registry and compare it against the
one stored in meta. When they differ, re-fetch the actual module via
_vitest_original so requestWithMockedModule receives a node with real
code to automock against.

Regression introduced in a8216b0 (vitest-dev#9774).
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 14, 2026

Deploy Preview for vitest-dev ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 18cb73d
🔍 Latest deploy log https://app.netlify.com/projects/vitest-dev/deploys/69de5dd77c2c39000853cb93
😎 Deploy Preview https://deploy-preview-10147--vitest-dev.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant