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
Never rejects if Date.now is mocked in the test #12
Comments
Bonus: example of such mock in the real world: https://github.com/facebook/jest/blob/6d3da9be06350bfa7414b609807ebd0cbdf0c416/examples/snapshot/__tests__/clock.react.test.js#L11 |
Merged and released, thank you so much :-) |
I am using typescript with react-hooks-testing-library that uses this library. To get tests to run, I had to mock Date in my tests declare global {
interface Window { Date: any; }
}
window.Date = Date; And comment out the code in wait-for-expect starting at line 16: var _ref = typeof window !== "undefined" ? window : global,
setTimeout = _ref.setTimeout,
now = _ref.Date.now; Is this a bug? |
Could you please make a small reproduction that shows the problem? |
Repro at https://github.com/chetmurphy/wait-for-expect-test
After installing with yarn run yarn test – will fail
● Test suite failed to run
TypeError: Cannot read property 'now' of undefined
at Object.<anonymous> (node_modules/wait-for-expect/lib/index.js:16:21)
at Object.<anonymous> (node_modules/dom-testing-library/dist/wait.js:10:45)
at Object.<anonymous> (node_modules/dom-testing-library/dist/index.js:83:13)
Test Suites: 1 failed, 1 total
Comment out wait for expect section at wait-for-expect/lib/index.js:16
Rerun yarn test - should succeed.
…--Chet
________________________________
From: Łukasz Gandecki <notifications@github.com>
Sent: Sunday, March 24, 2019 10:01:14 PM
To: TheBrainFamily/wait-for-expect
Cc: chetmurphy; Comment
Subject: Re: [TheBrainFamily/wait-for-expect] Never rejects if Date.now is mocked in the test (#12)
Could you please make a small reproduction that shows the problem?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub<https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FTheBrainFamily%2Fwait-for-expect%2Fissues%2F12%23issuecomment-476055600&data=02%7C01%7C%7C0407f97894f8434a3d9208d6b0dee8a8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636890868757911332&sdata=dLO7WiRjKTi52KjX5YFg9PPcB%2Fud5ODJTjyoxImiHIM%3D&reserved=0>, or mute the thread<https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAJrbVk8_jyPVuept_h6qb6q1_62UhqFbks5vaFgagaJpZM4YdgZ4&data=02%7C01%7C%7C0407f97894f8434a3d9208d6b0dee8a8%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636890868757921344&sdata=p%2By%2FPXqR4GRqohGgv7ME8iPK35TIrgLzkI%2ByLmZIKiI%3D&reserved=0>.
|
Hi there, thanks for a nice and convenient package!
This is mostly the same case as #4, but
Date.now
is mocked instead ofsetTimeout
. And if theDate.now
is mocked, this condition: https://github.com/TheBrainFamily/wait-for-expect/blob/master/src/index.ts#L21 will be either always true, or always false. So tests with mocked Date.now will either fail without retrying, or fail with temeout error.The solution for this is always to use the real Date.now the same way we're doing with setTimeout. I'll provide a PR for this where we can continue the discussion.
The text was updated successfully, but these errors were encountered: