Skip to content

test_runner: sync ESM exports when mocking timers#62141

Open
Siddhartha-singh01 wants to merge 1 commit intonodejs:mainfrom
Siddhartha-singh01:fix/issue-62081-mock-timers-esm
Open

test_runner: sync ESM exports when mocking timers#62141
Siddhartha-singh01 wants to merge 1 commit intonodejs:mainfrom
Siddhartha-singh01:fix/issue-62081-mock-timers-esm

Conversation

@Siddhartha-singh01
Copy link

This change ensures that ESM imports of node:timers/promises are correctly mocked when using mock.timers.enable(). This is achieved by calling syncBuiltinESMExports() whenever the mocked timers are toggled or reset.

Fixes: #62081

Before submitting a pull request, please read:

For code changes:

  1. Include tests for any bug fixes or new features.
  2. Update documentation if relevant.
  3. Ensure that make -j4 test (UNIX), or vcbuild test (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the notable-change label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/test_runner

@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. test_runner Issues and PRs related to the test runner subsystem. labels Mar 7, 2026
This change ensures that ESM imports of node:timers/promises are correctly
mocked when using mock.timers.enable(). This is achieved by calling
syncBuiltinESMExports() whenever the mocked timers are toggled or reset.

Fixes: nodejs#62081
@Siddhartha-singh01 Siddhartha-singh01 force-pushed the fix/issue-62081-mock-timers-esm branch from 384259e to b5ee33c Compare March 7, 2026 02:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ci PRs that need a full CI run. test_runner Issues and PRs related to the test runner subsystem.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

node:timer/promises does not work with mock.timers.runAll() in ESM

3 participants