-
Notifications
You must be signed in to change notification settings - Fork 0
/
LogBookControl.test.jsx
66 lines (49 loc) · 1.61 KB
/
LogBookControl.test.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
* @jest-environment jsdom
*/
import { useDispatch } from 'react-redux';
import { fireEvent, render } from '@testing-library/react';
import given from 'given2';
import { toggleLogBookOpen } from '../redux_module/todoSlice';
import LogBookControl from './LogBookControl';
describe('LogBookControl', () => {
const dispatch = jest.fn();
const renderLogBookControl = () => (
render((
<LogBookControl
isEmpty={given.isEmpty}
isOpen={given.isOpen}
/>
))
);
beforeEach(() => {
useDispatch.mockReturnValue(dispatch);
dispatch.mockClear();
});
context('when logBook is empty', () => {
given('isEmpty', () => true);
it('renders disabled button', () => {
const { getByRole } = renderLogBookControl();
expect(getByRole('button', { name: 'isEmpty' })).toBeDisabled();
});
});
context('when logBook is not empty', () => {
given('isEmpty', () => false);
context('when LogBook is closed', () => {
given('isOpen', () => false);
it('renders button listening click event', () => {
const { getByRole } = renderLogBookControl();
fireEvent.click(getByRole('button', { name: 'logBookOpener' }));
expect(dispatch).toBeCalledWith(toggleLogBookOpen());
});
});
context('when LogBook is opened', () => {
given('isOpen', () => true);
it('renders "로그 닫기" button', () => {
const { getByRole } = renderLogBookControl();
fireEvent.click(getByRole('button', { name: 'logBookCloser' }));
expect(dispatch).toBeCalledWith(toggleLogBookOpen());
});
});
});
});