@@ -2,9 +2,6 @@ import React from 'react';
22import { shallow } from 'enzyme' ;
33import { useTimeout } from '../../../../../controllers/hooks' ;
44
5- const setTimeoutSpy = jest . spyOn ( global , 'setTimeout' ) ;
6- const clearTimeoutSpy = jest . spyOn ( global , 'clearTimeout' ) ;
7-
85const DEFAULT_DELAY = 1000 ;
96
107const TestComponent = ( {
@@ -25,58 +22,65 @@ const TestComponent = ({
2522} ;
2623
2724describe ( 'useTimeout' , ( ) => {
28- const mockCallback = jest . fn ( ) ;
29-
3025 beforeEach ( ( ) => {
31- mockCallback . mockClear ( ) ;
32- setTimeoutSpy . mockClear ( ) ;
33- clearTimeoutSpy . mockClear ( ) ;
26+ jest . useFakeTimers ( ) ;
3427 } ) ;
3528
3629 afterEach ( ( ) => {
30+ jest . restoreAllMocks ( ) ;
3731 jest . useRealTimers ( ) ;
3832 } ) ;
3933
4034 it ( 'calls setTimeout on schedule()' , ( ) => {
41- const wrapper = shallow ( < TestComponent callback = { mockCallback } /> ) ;
35+ const setTimeout = jest . spyOn ( global , 'setTimeout' ) ;
36+ const wrapper = shallow ( < TestComponent callback = { jest . fn ( ) } /> ) ;
37+
4238 wrapper . find ( '#schedule' ) . simulate ( 'click' ) ;
43- expect ( setTimeoutSpy ) . toHaveBeenCalledTimes ( 1 ) ;
39+
40+ expect ( setTimeout ) . toHaveBeenCalledTimes ( 1 ) ;
4441 } ) ;
4542
4643 it ( 'calls clearTimeout on cancel()' , ( ) => {
47- const wrapper = shallow ( < TestComponent callback = { mockCallback } /> ) ;
44+ const clearTimeout = jest . spyOn ( global , 'clearTimeout' ) ;
45+ const wrapper = shallow ( < TestComponent callback = { jest . fn ( ) } /> ) ;
46+
4847 wrapper . find ( '#cancel' ) . simulate ( 'click' ) ;
49- expect ( clearTimeoutSpy ) . toHaveBeenCalledTimes ( 1 ) ;
48+
49+ expect ( clearTimeout ) . toHaveBeenCalledTimes ( 1 ) ;
5050 } ) ;
5151
5252 it ( 'schedules a callback to be fired' , ( ) => {
53- jest . useFakeTimers ( ) ;
54- const wrapper = shallow ( < TestComponent callback = { mockCallback } /> ) ;
53+ const callback = jest . fn ( ) ;
54+ const wrapper = shallow ( < TestComponent callback = { callback } /> ) ;
55+
5556 wrapper . find ( '#schedule' ) . simulate ( 'click' ) ;
5657 jest . runOnlyPendingTimers ( ) ;
57- expect ( mockCallback ) . toHaveBeenCalledTimes ( 1 ) ;
58+
59+ expect ( callback ) . toHaveBeenCalledTimes ( 1 ) ;
5860 } ) ;
5961
6062 it ( 'cancels a scheduled callback' , ( ) => {
61- jest . useFakeTimers ( ) ;
62- const wrapper = shallow ( < TestComponent callback = { mockCallback } /> ) ;
63+ const callback = jest . fn ( ) ;
64+ const wrapper = shallow ( < TestComponent callback = { callback } /> ) ;
65+
6366 wrapper . find ( '#schedule' ) . simulate ( 'click' ) ;
6467 wrapper . find ( '#cancel' ) . simulate ( 'click' ) ;
6568 jest . runAllTimers ( ) ;
66- expect ( mockCallback ) . not . toHaveBeenCalled ( ) ;
69+
70+ expect ( callback ) . not . toHaveBeenCalled ( ) ;
6771 } ) ;
6872
6973 it ( 'cancels a previously scheduled callback when schedule is called again' , ( ) => {
70- const mockCallback2 = jest . fn ( ) ;
71- jest . useFakeTimers ( ) ;
72- const wrapper = shallow ( < TestComponent callback = { mockCallback } /> ) ;
74+ const callback1 = jest . fn ( ) ;
75+ const callback2 = jest . fn ( ) ;
76+ const wrapper = shallow ( < TestComponent callback = { callback1 } /> ) ;
77+
7378 wrapper . find ( '#schedule' ) . simulate ( 'click' ) ;
74- wrapper . setProps ( { callback : mockCallback2 } ) ;
79+ wrapper . setProps ( { callback : callback2 } ) ;
7580 wrapper . find ( '#schedule' ) . simulate ( 'click' ) ;
76-
7781 jest . runAllTimers ( ) ;
7882
79- expect ( mockCallback ) . not . toHaveBeenCalled ( ) ;
80- expect ( mockCallback2 ) . toHaveBeenCalledTimes ( 1 ) ;
83+ expect ( callback1 ) . not . toHaveBeenCalled ( ) ;
84+ expect ( callback2 ) . toHaveBeenCalledTimes ( 1 ) ;
8185 } ) ;
8286} ) ;
0 commit comments