GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — test_runner: Add Date to the supported mock APIs by khaosdoctor · Pull Request #48638 · nodejs/node

Conversation

@khaosdoctor

@khaosdoctor khaosdoctor commented Jul 2, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

bricss, kentcdodds, Luisgustavom1, teohen, gabrielbugarelli, primeare, ClaudenirFreitas, styfle, KozlovAndrii, brunojppb, and wellwelwel reacted with thumbs up emoji
All reactions
  • 👍 11 reactions
@nodejs-github-bot

nodejs-github-bot commented Jul 2, 2023

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/test_runner
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@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
khaosdoctor
khaosdoctor commented Jul 2, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ErickWendel

ErickWendel commented Jul 3, 2023

Copy link
Copy Markdown
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

benjamingr reacted with thumbs up emoji benjamingr reacted with heart emoji khaosdoctor reacted with eyes emoji
All reactions
  • 👍 1 reaction
  • ❤️ 1 reaction
  • 👀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Jul 3, 2023

Copy link
Copy Markdown
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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ljharb

ljharb commented Jul 3, 2023

Copy link
Copy Markdown
Member

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

khaosdoctor, tniessen, kentcdodds, and fortiZde reacted with thumbs up emoji
All reactions
  • 👍 4 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Jul 3, 2023

Copy link
Copy Markdown
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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor khaosdoctor mentioned this pull request Jul 5, 2023
test_runner: implement first iteration of date.now #48637
Closed
@khaosdoctor

khaosdoctor commented Jul 6, 2023

Copy link
Copy Markdown
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?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ljharb
ljharb reviewed Jul 7, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

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

@ljharb ljharb Jul 7, 2023

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

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]);

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@khaosdoctor khaosdoctor Jul 7, 2023

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@ljharb ljharb Jul 7, 2023

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

ErickWendel
ErickWendel reviewed Jul 7, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Outdated
#isEnabled = false;
#currentTimer = 1;
#now = DateNow();
#now = 0;

@ErickWendel ErickWendel Jul 7, 2023

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

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

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions

@khaosdoctor khaosdoctor Jul 7, 2023 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

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.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread test/parallel/test-runner-mock-timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread test/parallel/test-runner-mock-timers.js Outdated
p.then(common.mustCall((result) => {
assert.ok(result);
}));
p.then(

@ErickWendel ErickWendel Jul 7, 2023

Copy link
Copy Markdown
Member

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

same here

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

khaosdoctor reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
ErickWendel
ErickWendel reviewed Jul 7, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ErickWendel

ErickWendel commented Jul 7, 2023

Copy link
Copy Markdown
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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

ljharb
ljharb reviewed Jul 7, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Jul 7, 2023

Copy link
Copy Markdown
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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@benjamingr

benjamingr commented Jul 9, 2023

Copy link
Copy Markdown
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?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ljharb

ljharb commented Jul 9, 2023

Copy link
Copy Markdown
Member

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@benjamingr

benjamingr commented Jul 12, 2023

Copy link
Copy Markdown
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.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Jul 12, 2023

Copy link
Copy Markdown
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 :)

benjamingr reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Jul 12, 2023

Copy link
Copy Markdown
Member Author

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

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor
khaosdoctor requested review from ErickWendel and ljharb July 12, 2023 22:38
benjamingr
benjamingr reviewed Jul 13, 2023
View reviewed changes
Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

benjamingr
benjamingr reviewed Jul 13, 2023
View reviewed changes
Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

benjamingr
benjamingr reviewed Jul 13, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

ErickWendel
ErickWendel reviewed Jul 13, 2023
View reviewed changes
Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

@benjamingr

benjamingr commented Jul 14, 2023

Copy link
Copy Markdown
Member

Other than my comments LGTM

khaosdoctor reacted with rocket emoji
All reactions
  • 🚀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

MoLow
MoLow reviewed Jul 14, 2023
View reviewed changes
Comment thread lib/internal/test_runner/mock/mock_timers.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@RafaelGSS

RafaelGSS commented Oct 13, 2023

Copy link
Copy Markdown
Member

@khaosdoctor I've retried it one more time, if it fails again I suggest you rebase on top of main.

khaosdoctor reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Oct 14, 2023

Copy link
Copy Markdown
Member Author

@RafaelGSS Now it seems to be good to go!

ErickWendel reacted with hooray emoji
All reactions
  • 🎉 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

rozzilla
rozzilla reviewed Oct 15, 2023
View reviewed changes

@rozzilla rozzilla left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

Cool!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

khaosdoctor reacted with hooray emoji
All reactions
  • 🎉 1 reaction
@nodejs-github-bot

nodejs-github-bot commented Oct 16, 2023

Copy link
Copy Markdown
Collaborator
Commit Queue failed
- Loading data for nodejs/node/pull/48638
✔  Done loading data for nodejs/node/pull/48638
----------------------------------- PR info ------------------------------------
Title      test_runner: Add Date to the supported mock APIs (#48638)
Author     Lucas Santos  (@khaosdoctor)
Branch     khaosdoctor:test_runner/introduce_improve_fake_timers -> nodejs:main
Labels     semver-minor, notable-change, author ready, needs-ci, commit-queue-squash, test_runner
Commits    3
 - test_runner: add Date to the supported mock APIs
 - Apply suggestions from code review
 - Apply suggestions from code review
Committers 1
 - Lucas Santos 
PR-URL: https://github.com/nodejs/node/pull/48638
Reviewed-By: Benjamin Gruenbaum 
Reviewed-By: Moshe Atlow 
Reviewed-By: Erick Wendel 
Reviewed-By: Rafael Gonzaga 
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/48638
Reviewed-By: Benjamin Gruenbaum 
Reviewed-By: Moshe Atlow 
Reviewed-By: Erick Wendel 
Reviewed-By: Rafael Gonzaga 
--------------------------------------------------------------------------------
   ⚠  Commits were pushed since the last approving review:
   ⚠  - test_runner: add Date to the supported mock APIs
   ⚠  - Apply suggestions from code review
   ⚠  - Apply suggestions from code review
   ℹ  This PR was created on Sun, 02 Jul 2023 19:29:31 GMT
   ✔  Approvals: 4
   ✔  - Benjamin Gruenbaum (@benjamingr) (TSC): https://github.com/nodejs/node/pull/48638#pullrequestreview-1655247395
   ✔  - Moshe Atlow (@MoLow) (TSC): https://github.com/nodejs/node/pull/48638#pullrequestreview-1630117150
   ✔  - Erick Wendel (@erickwendel): https://github.com/nodejs/node/pull/48638#pullrequestreview-1536004400
   ✔  - Rafael Gonzaga (@RafaelGSS) (TSC): https://github.com/nodejs/node/pull/48638#pullrequestreview-1665791940
   ✔  Last GitHub CI successful
   ℹ  Last Full PR CI on 2023-10-10T12:43:52Z: https://ci.nodejs.org/job/node-test-pull-request/54632/
   ⚠  Commits were pushed after the last Full PR CI run:
   ⚠  - test_runner: add Date to the supported mock APIs
   ⚠  - Apply suggestions from code review
   ⚠  - Apply suggestions from code review
- Querying data for job/node-test-pull-request/54632/
   ✔  Last Jenkins CI successful
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu
https://github.com/nodejs/node/actions/runs/6527901651
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 reviewed Oct 16, 2023
View reviewed changes
Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread doc/api/test.md Resolved

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 approved these changes Oct 16, 2023
View reviewed changes

@aduh95 aduh95 left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

RSLGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

khaosdoctor reacted with hooray emoji
All reactions
  • 🎉 1 reaction
@nodejs-github-bot

nodejs-github-bot commented Oct 16, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54858/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

RafaelGSS
RafaelGSS approved these changes Oct 17, 2023
View reviewed changes
@nodejs-github-bot

nodejs-github-bot commented Oct 17, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54871/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Oct 18, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/54965/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Oct 19, 2023
CI Reliability 2023-10-19 nodejs/reliability#691
Open
CI Reliability 2023-10-20 nodejs/reliability#692
Open
@nodejs-github-bot

nodejs-github-bot commented Oct 20, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/55050/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Oct 21, 2023
CI Reliability 2023-10-21 nodejs/reliability#693
Open
24 tasks
@nodejs-github-bot

nodejs-github-bot commented Oct 21, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/55076/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Oct 22, 2023
CI Reliability 2023-10-22 nodejs/reliability#694
Open
29 tasks
khaosdoctor and others added 4 commits October 22, 2023 20:45
@khaosdoctor
test_runner: add Date to the supported mock APIs
52176c9
signed-off-by: Lucas Santos <[email protected]>
@khaosdoctor @aduh95
Apply suggestions from code review
a794944
Co-authored-by: Antoine du Hamel <[email protected]>
@khaosdoctor @aduh95
Apply suggestions from code review
ea24c0a
Co-authored-by: Antoine du Hamel <[email protected]>
@khaosdoctor @aduh95
Apply suggestions from code review
8991402
Co-authored-by: Antoine du Hamel <[email protected]>
@khaosdoctor

khaosdoctor commented Oct 22, 2023

Copy link
Copy Markdown
Member Author

Merging @anonrig changes in the tests that includes some of them (including the ones failing here) as flaky to check if this will pass

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Oct 23, 2023
CI Reliability 2023-10-23 nodejs/reliability#695
Open
26 tasks
@nodejs-github-bot

nodejs-github-bot commented Oct 23, 2023

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/55134/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

RafaelGSS
RafaelGSS approved these changes Oct 23, 2023
View reviewed changes
@nodejs-github-bot

nodejs-github-bot commented Oct 23, 2023

Copy link
Copy Markdown
Collaborator

Landed in 45a0b15

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Oct 23, 2023

Copy link
Copy Markdown
Member Author

OMG FINALLY ⭐

wellwelwel reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@khaosdoctor

khaosdoctor commented Oct 23, 2023

Copy link
Copy Markdown
Member Author

Thanks @anonrig for the flaky PRs!

anonrig and cirospaciari reacted with heart emoji
All reactions
  • ❤️ 2 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@github-actions github-actions Bot mentioned this pull request Oct 24, 2023
CI Reliability 2023-10-24 nodejs/reliability#696
Open
27 tasks
@targos targos mentioned this pull request Nov 12, 2023
v21.2.0 release proposal #50681
Merged
@UlisesGascon UlisesGascon mentioned this pull request Dec 12, 2023
v20.11.0 proposal #51124
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@ljharb ljharb ljharb left review comments
@anonrig anonrig anonrig left review comments
@benjamingr benjamingr benjamingr approved these changes
@ErickWendel ErickWendel ErickWendel approved these changes
@MoLow MoLow MoLow approved these changes
@aduh95 aduh95 aduh95 approved these changes
@RafaelGSS RafaelGSS RafaelGSS approved these changes
+1 more reviewer
@rozzilla rozzilla rozzilla left review comments
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. commit-queue-squash PRs the Commit Queue should land as one squashed commit. 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

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

10 participants

@khaosdoctor @nodejs-github-bot @ErickWendel @ljharb @benjamingr @MoLow @RafaelGSS @anonrig @rozzilla @aduh95
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.