Skip to content

Commit bc6752e

Browse files
Update useTimeout tests (#181)
1 parent 52c960c commit bc6752e

File tree

1 file changed

+29
-25
lines changed
  • src/__tests__/unit/controllers/hooks/use-timeout

1 file changed

+29
-25
lines changed

src/__tests__/unit/controllers/hooks/use-timeout/test.tsx

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ import React from 'react';
22
import { shallow } from 'enzyme';
33
import { useTimeout } from '../../../../../controllers/hooks';
44

5-
const setTimeoutSpy = jest.spyOn(global, 'setTimeout');
6-
const clearTimeoutSpy = jest.spyOn(global, 'clearTimeout');
7-
85
const DEFAULT_DELAY = 1000;
96

107
const TestComponent = ({
@@ -25,58 +22,65 @@ const TestComponent = ({
2522
};
2623

2724
describe('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

Comments
 (0)