Passed
Pull Request — main (#341)
by Alejandro
03:43
created

test/servers/CreateServer.test.tsx   A

Complexity

Total Complexity 1
Complexity/F 0

Size

Lines of Code 62
Function Count 0

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 54
mnd 1
bc 1
fnc 0
dl 0
loc 62
bpm 0
cpm 0
noi 0
c 0
b 0
f 0
rs 10
1
import { shallow, ShallowWrapper } from 'enzyme';
2
import { Mock } from 'ts-mockery';
3
import { History } from 'history';
4
import createServerConstruct from '../../src/servers/CreateServer';
5
import { ServerForm } from '../../src/servers/helpers/ServerForm';
6
7
describe('<CreateServer />', () => {
8
  let wrapper: ShallowWrapper;
9
  const ImportServersBtn = () => null;
10
  const createServerMock = jest.fn();
11
  const push = jest.fn();
12
  const historyMock = Mock.of<History>({ push });
13
  const createWrapper = (serversImported = false, importFailed = false) => {
14
    const useStateFlagTimeout = jest.fn()
15
      .mockReturnValueOnce([ serversImported, () => '' ])
16
      .mockReturnValueOnce([ importFailed, () => '' ]);
17
    const CreateServer = createServerConstruct(ImportServersBtn, useStateFlagTimeout);
18
19
    wrapper = shallow(<CreateServer createServer={createServerMock} history={historyMock} />);
20
21
    return wrapper;
22
  };
23
24
  afterEach(() => {
25
    jest.resetAllMocks();
26
    wrapper?.unmount();
27
  });
28
29
  it('renders components', () => {
30
    const wrapper = createWrapper();
31
32
    expect(wrapper.find(ServerForm)).toHaveLength(1);
33
    expect(wrapper.find('Result')).toHaveLength(0);
34
  });
35
36
  it('shows success message when imported is true', () => {
37
    const wrapper = createWrapper(true);
38
    const result = wrapper.find('Result');
39
40
    expect(result).toHaveLength(1);
41
    expect(result.prop('type')).toEqual('success');
42
  });
43
44
  it('shows error message when import failed', () => {
45
    const wrapper = createWrapper(false, true);
46
    const result = wrapper.find('Result');
47
48
    expect(result).toHaveLength(1);
49
    expect(result.prop('type')).toEqual('error');
50
  });
51
52
  it('creates server and redirects to it when form is submitted', () => {
53
    const wrapper = createWrapper();
54
    const form = wrapper.find(ServerForm);
55
56
    form.simulate('submit', {});
57
58
    expect(createServerMock).toHaveBeenCalledTimes(1);
59
    expect(push).toHaveBeenCalledTimes(1);
60
  });
61
});
62