Skip to content

fix: use named imports and resolve mock specifiers for Node 24 compat#4

Merged
PatrickHeneise merged 3 commits intomainfrom
fix/node24-mock-compat
Apr 22, 2026
Merged

fix: use named imports and resolve mock specifiers for Node 24 compat#4
PatrickHeneise merged 3 commits intomainfrom
fix/node24-mock-compat

Conversation

@PatrickHeneise
Copy link
Copy Markdown
Member

Summary

  • Switch import * as core from '@actions/core' to named imports in all source files — Node 24's mock.module wraps the exports object as a default export when using namespace imports, causing TypeError: core.warning is not a function in tests
  • Use import.meta.resolve() for relative mock specifiers in tests — Node 24 doesn't canonicalize relative paths before matching mocks, causing SyntaxError: does not provide an export named 'getActionConfig'

Test plan

  • npm test — all 21 tests pass

🤖 Generated with Claude Code

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>
@PatrickHeneise PatrickHeneise marked this pull request as ready for review April 22, 2026 23:13
PatrickHeneise and others added 2 commits April 22, 2026 17:16
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>
@PatrickHeneise PatrickHeneise merged commit 6150599 into main Apr 22, 2026
3 checks passed
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