Skip to content

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

Draft
kade-robertson wants to merge 1 commit into
mainfrom
fix-stale-isolate-mock
Draft

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

Conversation

@kade-robertson
Copy link
Copy Markdown
Owner

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).

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).
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