test: Fix nock
compatibility with fake timers
#24805
Merged
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.
Description
The
nock
library is not compatible with the fake timers we use in unit tests because it uses the Node.jstimers
API. This API is not mocked correctly by the version of Jest we are using.Jest uses
@sinon/fake-timers
internally, which didn't support mocking the Node.jstimers
API until v11.0.0 (see sinonjs/fake-timers#467) This package is updated in Jest as part of the v30 release, which is currently under development.To workaround this problem in the meantime, the
nock
package has been updated and patched to use global timers rather than thetimers
API. Global timers are mocked correctly.Related issues
This was required for some unit tests that I will be submitting in a different PR, intended for #24503
Manual testing steps
N/A
Screenshots/Recordings
N/A
Pre-merge author checklist
Pre-merge reviewer checklist