fix: use named imports and resolve mock specifiers for Node 24 compat#4
Merged
PatrickHeneise merged 3 commits intomainfrom Apr 22, 2026
Merged
fix: use named imports and resolve mock specifiers for Node 24 compat#4PatrickHeneise merged 3 commits intomainfrom
PatrickHeneise merged 3 commits intomainfrom
Conversation
Node 24's mock.module wraps the exports object as a default export when using namespace imports (import * as X). Switching to named imports and using import.meta.resolve() for relative mock specifiers fixes the TypeError and SyntaxError seen in CI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
namedExports is the Node 24 API for setting named export bindings in mock.module; exports was introduced later and deprecated namedExports in Node 25. Also switches source files from namespace imports (import * as) to named imports, and uses import.meta.resolve() for relative mock paths. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Node 24 cannot match file-URL mock specifiers against relative imports. Since getActionConfig only reads process.env, set env vars in beforeEach instead of mocking the module. Also fixes @actions/github mock to use namedExports consistent with @actions/core. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
import * as core from '@actions/core'to named imports in all source files — Node 24'smock.modulewraps the exports object as a default export when using namespace imports, causingTypeError: core.warning is not a functionin testsimport.meta.resolve()for relative mock specifiers in tests — Node 24 doesn't canonicalize relative paths before matching mocks, causingSyntaxError: does not provide an export named 'getActionConfig'Test plan
npm test— all 21 tests pass🤖 Generated with Claude Code