test: Fix nock compatibility with fake timers#24805
Merged
Conversation
The `nock` library is not compatible with the fake timers we use in unit tests because it uses the Node.js `timers` 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.js `timers` 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 the `timers` API. Global timers are mocked correctly. This was required for some unit tests that I will be submitting in a different PR, intended for #24503
Collaborator
Builds ready [c9d9ef4]
Page Load Metrics (1699 ± 917 ms)
Bundle size diffs
|
pedronfigueiredo
approved these changes
May 28, 2024
salimtb
approved these changes
May 28, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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
nocklibrary is not compatible with the fake timers we use in unit tests because it uses the Node.jstimersAPI. This API is not mocked correctly by the version of Jest we are using.Jest uses
@sinon/fake-timersinternally, which didn't support mocking the Node.jstimersAPI 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
nockpackage has been updated and patched to use global timers rather than thetimersAPI. 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