Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test_runner: Add Date to the supported mock APIs #48638

Conversation

khaosdoctor
Copy link
Member

@khaosdoctor khaosdoctor commented Jul 2, 2023

This builds on top of @ErickWendel's #47775, I saw the next steps would be to implement the mock timers for Date.now (and thus, the Date object) and performance.now.

This PR implements the Date.now mock, I'll also work on performance.now on another PR to make it simpler to review. This one includes the Docs already updated and the added tests.

This heavily builds on Sinon's Fake Timers for the base edge cases

To-Do

  • Refactor the code to make setTime actually call the tick method and pass the time
  • Make the initial time be 0 or accept an instance of Date, or a specific number to make it's implementation be the same as fake-timers
  • Mock the Date object completely
  • Allow enable to accept multiple overloads

Next iterations

  • Mock performance.now
  • Mock process.hrtime

New MockTimers API

// All that was before, with no changes
MockTimers.reset()  // clean up to the original state
MockTimers.tick(100) // advance in time by 100ms
MockTimers.runAll() // release all timers

// Implementation changes
MockTimers.enable({ timersToEnable: ['setInterval', 'setTimeout', 'Date' ], now: 1000 }) // enable fake timers with the initial timer set (optional)

// New methods
MockTimers.setTime(100) // sets Date.now to the desired value

It's also possible to omit the initial parameter and pass on only the initial epoch, which will enable all timers with that epoch set:

// All that was before, with no changes
MockTimers.reset()  // clean up to the original state
MockTimers.tick(100) // advance in time by 100ms
MockTimers.runAll() // release all timers

// Implementation changes
MockTimers.enable({ now: 1000 }) // enable fake timers with the initial timer set (optional)

// New methods
MockTimers.setTime(100) // sets Date.now to the desired value

Lastly, you can omit all parameters to enable all timers at the epoch 0:

// All that was before, with no changes
MockTimers.reset()  // clean up to the original state
MockTimers.tick(100) // advance in time by 100ms
MockTimers.runAll() // release all timers

// Implementation changes
MockTimers.enable()

// New methods
MockTimers.setTime(100) // sets Date.now to the desired value

Example usage

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks Date.now to whatever value the user sets', (context) => {
  const now = Date.now()
  console.log(now) // not mocked, will print correct timestamp

  context.mock.timers.enable({ apis: ['Date'] });

  // This will be roughly true. Just to take it as example
  assert.strictEqual(now, Date.now()) // if not set, will take the value of Date.now() as initial value
  context.mock.timers.setTime(1000)
  assert.strictEqual(Date.now(), 1000) // Date.now is 1000
});
import assert from 'node:assert';
import { test } from 'node:test';

test('mocks Date.now to whatever value the user sets', (context) => {
  const now = Date.now()
  console.log(now) // not mocked, will print correct timestamp

  context.mock.timers.enable({ apis: ['Date'], now: 1000 });

  // This will be roughly true. Just to take it as example
  assert.strictEqual(Date.now(), 1000) // Date.now is 1000 due to being set in enable()
});

All the remaining APIs are the same

@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 Jul 2, 2023
@khaosdoctor khaosdoctor changed the title test_runner: implement first iteration of date.now test_runner: implement Date.now mock as a MockTimer Jul 2, 2023
@ErickWendel
Copy link
Member

I don't think Date.now should be passed as a param while enabling timers as it's not a timer.

IMHO In this first version Date.now should advance in time when some .tick call happens

cc @nodejs/test_runner

@khaosdoctor
Copy link
Member Author

I don't think Date.now should be passed as a param while enabling timers as it's not a timer.

I think it's a timer in the sense that's an API to manipulate or count time in general. But I can see your point too, it can be confusing, I took as an inspiration the last PR and Sinon's fake timers API, this last one also mocks not only the now but the entire Date constructor.

But IMO it kinda makes sense to be here, I would expect an API to manipulate date to be in the fake timers implementation as an user.

IMHO In this first version Date.now should advance in time when some .tick call happens

Regarding this, it's already happening in this implementation, tick is advancing the #now property which is returned by Date.now but setting a time with setTime is not triggering tick, this is a problem that I'll address in the upcoming commits.

@ljharb
Copy link
Member

ljharb commented Jul 3, 2023

Mocking Date.now() without mocking new Date() will be a massive footgun.

@khaosdoctor
Copy link
Member Author

Mocking Date.now() without mocking new Date() will be a massive footgun.

Yeah I thought so later on, it wouldn't make a lot of sense 😄 thanks for clarifying! Will add this to the next steps

@khaosdoctor
Copy link
Member Author

a83b9f9 introduces a problem and a question. When runAll is called, the easiest way to implement is to do like @ErickWendel did and tick to Infinity, however, this will break the Date mock as Infinity is not a valid epoch.

From here I think we have two options:

  1. After running runAll return the epoch value (#now) to what it was before the tick, this will run all the timers but won't advance the date (current implementation, easiest one)
  2. Calculate the amount of time required to run all the timeouts (which is basically picking up the last one from the priority queue) and tick the time to that, this way the new Date object will resemble to have run all the ticks required for the timers to execute.

Any thoughts?

lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
this.#now = 0;
} else if (this.#isValidDateWithGetTime(args[0])) {
// First argument is the initial time as Date
this.#now = args[0].getTime();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we mean to call .getTime() on the argument, or should this instead be:

Suggested change
this.#now = args[0].getTime();
this.#now = DatePrototypeGetTime(args[0]);

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's the intended one, if the first argument is an instance of Date then we will call the getTime method on it to get the timestamp

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right but if it's an actual Date object - which may not be instanceof Date - you don't want to rely on the presence of Date.prototype.getTime at runtime.

lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
#timersInContext = [];
#isEnabled = false;
#currentTimer = 1;
#now = DateNow();
#now = 0;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#now should be DateNow unless it's changed by .setTime

Copy link
Member Author

@khaosdoctor khaosdoctor Jul 7, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But that differs from the implementation from fake-timers. If the intention is to be close to that API then we wouldn't be able to start it as DateNow, however, I'm not against that too. I think it's worth a discussion with @nodejs/test_runner

On my side I think the pros is that you can start the Date object without actually setting anything on it, as opposed to having to set the time at any given new fake timer instance because otherwise you'd have Jan 1, 1970. Which also can be a pro to some people as it's more explicit to what time is the initial time.

lib/internal/test_runner/mock/mock_timers.js Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
lib/internal/test_runner/mock/mock_timers.js Outdated Show resolved Hide resolved
test/parallel/test-runner-mock-timers.js Outdated Show resolved Hide resolved
p.then(common.mustCall((result) => {
assert.ok(result);
}));
p.then(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

@ErickWendel
Copy link
Member

a83b9f9 introduces a problem and a question. When runAll is called, the easiest way to implement is to do like @ErickWendel did and tick to Infinity, however, this will break the Date mock as Infinity is not a valid epoch.

From here I think we have two options:

  1. After running runAll return the epoch value (#now) to what it was before the tick, this will run all the timers but won't advance the date (current implementation, easiest one)
  2. Calculate the amount of time required to run all the timeouts (which is basically picking up the last one from the priority queue) and tick the time to that, this way the new Date object will resemble to have run all the ticks required for the timers to execute.

Any thoughts?

I think runAll shouldn't affect Date.now as it's just releasing all pending operations so option 1 is the best IMHO

@khaosdoctor
Copy link
Member Author

@ErickWendel: I think runAll shouldn't affect Date.now as it's just releasing all pending operations so option 1 is the best IMHO

There is a third option here which is to have a property in the enable method which could be called shouldAdvanceTimeOnRunAll that would implement the second option as well. This would cover for use cases where running the timers and checking the date are actually interconnected, for example, testing banking systems that could rely on a timestamp being after another to order events in a timeline after being called from a cron or something

@benjamingr
Copy link
Member

I don't understand the rationale not to progress the clock date whenever it should happen (e.g by 20ms if a 20ms setTimeout delayed has run)?

I think this was the sinon/jest behavior and I don't think anyone ever asked for anything different?

@ljharb
Copy link
Member

ljharb commented Jul 9, 2023

I was under the impression that when Date was mocked, time never advanced except manually by the user.

@benjamingr
Copy link
Member

I was under the impression that when Date was mocked, time never advanced except manually by the user.

As far as I remember from our code in fake-timers we always progress Date/performance.now when we progress timers.

@khaosdoctor
Copy link
Member Author

I was under the impression that when Date was mocked, time never advanced except manually by the user.

As far as I remember from our code in fake-timers we always progress Date/performance.now when we progress timers.

Alright! I think I'll work on them today up to the end and we can implement that version, I also think it's the best solution, then we can have a base v1 ready :)

@khaosdoctor
Copy link
Member Author

@ljharb @ErickWendel @benjamingr I think I'm done with this version 😄 if you could please review it 🚀

doc/api/test.md Outdated Show resolved Hide resolved
doc/api/test.md Outdated Show resolved Hide resolved
doc/api/test.md Outdated Show resolved Hide resolved
@benjamingr
Copy link
Member

Other than my comments LGTM

@RafaelGSS RafaelGSS added the commit-queue Add this label to land a pull request using GitHub Actions. label Oct 23, 2023
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Oct 23, 2023
@nodejs-github-bot nodejs-github-bot merged commit 45a0b15 into nodejs:main Oct 23, 2023
25 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in 45a0b15

@khaosdoctor
Copy link
Member Author

OMG FINALLY ⭐

@khaosdoctor
Copy link
Member Author

Thanks @anonrig for the flaky PRs!

@khaosdoctor khaosdoctor deleted the test_runner/introduce_improve_fake_timers branch October 23, 2023 20:09
alexfernandez pushed a commit to alexfernandez/node that referenced this pull request Nov 1, 2023
signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
PR-URL: nodejs#48638
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Erick Wendel <erick.workspace@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
targos pushed a commit that referenced this pull request Nov 11, 2023
signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
PR-URL: #48638
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Erick Wendel <erick.workspace@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
targos added a commit that referenced this pull request Nov 12, 2023
Notable changes:

doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add stacktrace to fs/promises (翠 / green) #49849
lib:
  * (SEMVER-MINOR) add navigator.platform (Aras Abbasi) #50385
stream:
  * (SEMVER-MINOR) add support for `deflate-raw` format to webstreams compression (Damian Krzeminski) #50097
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #50681
targos added a commit that referenced this pull request Nov 13, 2023
Notable changes:

doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add stacktrace to fs/promises (翠 / green) #49849
lib:
  * (SEMVER-MINOR) add `--no-experimental-global-navigator` CLI flag (Antoine du Hamel) #50562
  * (SEMVER-MINOR) add navigator.language & navigator.languages (Aras Abbasi) #50303
  * (SEMVER-MINOR) add navigator.platform (Aras Abbasi) #50385
stream:
  * (SEMVER-MINOR) add support for `deflate-raw` format to webstreams compression (Damian Krzeminski) #50097
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #50681
targos added a commit that referenced this pull request Nov 14, 2023
Notable changes:

doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add stacktrace to fs/promises (翠 / green) #49849
lib:
  * (SEMVER-MINOR) add `--no-experimental-global-navigator` CLI flag (Antoine du Hamel) #50562
  * (SEMVER-MINOR) add navigator.language & navigator.languages (Aras Abbasi) #50303
  * (SEMVER-MINOR) add navigator.platform (Aras Abbasi) #50385
stream:
  * (SEMVER-MINOR) add support for `deflate-raw` format to webstreams compression (Damian Krzeminski) #50097
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #50681
targos added a commit that referenced this pull request Nov 14, 2023
Notable changes:

doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add stacktrace to fs/promises (翠 / green) #49849
lib:
  * (SEMVER-MINOR) add `--no-experimental-global-navigator` CLI flag (Antoine du Hamel) #50562
  * (SEMVER-MINOR) add navigator.language & navigator.languages (Aras Abbasi) #50303
  * (SEMVER-MINOR) add navigator.platform (Aras Abbasi) #50385
stream:
  * (SEMVER-MINOR) add support for `deflate-raw` format to webstreams compression (Damian Krzeminski) #50097
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #50681
martenrichter pushed a commit to martenrichter/node that referenced this pull request Nov 26, 2023
Notable changes:

doc:
  * add MrJithil to collaborators (Jithil P Ponnan) nodejs#50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) nodejs#50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) nodejs#48740
fs:
  * add stacktrace to fs/promises (翠 / green) nodejs#49849
lib:
  * (SEMVER-MINOR) add `--no-experimental-global-navigator` CLI flag (Antoine du Hamel) nodejs#50562
  * (SEMVER-MINOR) add navigator.language & navigator.languages (Aras Abbasi) nodejs#50303
  * (SEMVER-MINOR) add navigator.platform (Aras Abbasi) nodejs#50385
stream:
  * (SEMVER-MINOR) add support for `deflate-raw` format to webstreams compression (Damian Krzeminski) nodejs#50097
  * use Array for Readable buffer (Robert Nagy) nodejs#50341
  * optimize creation (Robert Nagy) nodejs#50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) nodejs#50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) nodejs#48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) nodejs#50443

PR-URL: nodejs#50681
UlisesGascon pushed a commit that referenced this pull request Dec 11, 2023
signed-off-by: Lucas Santos <lhs.santoss@gmail.com>
PR-URL: #48638
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Erick Wendel <erick.workspace@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
UlisesGascon added a commit that referenced this pull request Dec 12, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: TODO
@UlisesGascon UlisesGascon mentioned this pull request Dec 12, 2023
UlisesGascon added a commit that referenced this pull request Dec 12, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Dec 13, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Dec 15, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Dec 15, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Dec 20, 2023
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Jan 3, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Jan 4, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Jan 9, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
UlisesGascon added a commit that referenced this pull request Jan 9, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) #50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) #50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) #50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) #48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) #49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) #48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) #48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) #50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) #48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) #48655
stream:
  * use Array for Readable buffer (Robert Nagy) #50341
  * optimize creation (Robert Nagy) #50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) #50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) #48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) #50443

PR-URL: #51124
marco-ippolito pushed a commit to marco-ippolito/node that referenced this pull request Jan 12, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) nodejs#50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) nodejs#50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) nodejs#50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) nodejs#48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) nodejs#49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) nodejs#48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) nodejs#48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) nodejs#50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) nodejs#48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) nodejs#48655
stream:
  * use Array for Readable buffer (Robert Nagy) nodejs#50341
  * optimize creation (Robert Nagy) nodejs#50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) nodejs#50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) nodejs#48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) nodejs#50443

PR-URL: nodejs#51124
Medhansh404 pushed a commit to Medhansh404/node that referenced this pull request Jan 19, 2024
Notable changes:

crypto:
  * update root certificates to NSS 3.95 (Node.js GitHub Bot) nodejs#50805
doc:
  * add MrJithil to collaborators (Jithil P Ponnan) nodejs#50666
  * add Ethan-Arrowood as a collaborator (Ethan Arrowood) nodejs#50393
esm:
  * (SEMVER-MINOR) add import.meta.dirname and import.meta.filename (James Sumners) nodejs#48740
fs:
  * add c++ fast path for writeFileSync utf8 (CanadaHonk) nodejs#49884
module:
  * (SEMVER-MINOR) remove useCustomLoadersIfPresent flag (Chengzhong Wu) nodejs#48655
  * (SEMVER-MINOR) bootstrap module loaders in shadow realm (Chengzhong Wu) nodejs#48655
src:
  * (SEMVER-MINOR) add `--disable-warning` option (Ethan Arrowood) nodejs#50661
  * (SEMVER-MINOR) create per isolate proxy env template (Chengzhong Wu) nodejs#48655
  * (SEMVER-MINOR) make process binding data weak (Chengzhong Wu) nodejs#48655
stream:
  * use Array for Readable buffer (Robert Nagy) nodejs#50341
  * optimize creation (Robert Nagy) nodejs#50337
test_runner:
  * (SEMVER-MINOR) adds built in lcov reporter (Phil Nash) nodejs#50018
  * (SEMVER-MINOR) add Date to the supported mock APIs (Lucas Santos) nodejs#48638
test_runner, cli:
  * (SEMVER-MINOR) add --test-timeout flag (Shubham Pandey) nodejs#50443

PR-URL: nodejs#51124
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. needs-ci PRs that need a full CI run. notable-change PRs with changes that should be highlighted in changelogs. semver-minor PRs that contain new features and should be released in the next minor version. test_runner Issues and PRs related to the test runner subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants