-
Notifications
You must be signed in to change notification settings - Fork 92
/
TemplateInputs.test.js
50 lines (46 loc) · 1.52 KB
/
TemplateInputs.test.js
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
import React from 'react';
import { Provider } from 'react-redux';
import { fireEvent, screen, render, act } from '@testing-library/react';
import * as api from 'foremanReact/redux/API';
import { JobWizard } from '../../../JobWizard';
import * as selectors from '../../../JobWizardSelectors';
import { testSetup, mockApi } from '../../../__tests__/fixtures';
import { WIZARD_TITLES } from '../../../JobWizardConstants';
const store = testSetup(selectors, api);
mockApi(api);
describe('TemplateInputs', () => {
it('should save data between steps for template input fields', async () => {
render(
<Provider store={store}>
<JobWizard />
</Provider>
);
await act(async () => {
fireEvent.click(screen.getByText(WIZARD_TITLES.hostsAndInputs));
});
const textValue = 'I am a plain text';
const textField = screen.getByLabelText('plain hidden', {
selector: 'textarea',
});
await act(async () => {
await fireEvent.change(textField, {
target: { value: textValue },
});
});
expect(
screen.getByLabelText('plain hidden', {
selector: 'textarea',
}).value
).toBe(textValue);
await act(async () => {
fireEvent.click(screen.getByText(WIZARD_TITLES.categoryAndTemplate));
});
expect(screen.getAllByText(WIZARD_TITLES.categoryAndTemplate)).toHaveLength(
3
);
await act(async () => {
fireEvent.click(screen.getByText(WIZARD_TITLES.hostsAndInputs));
});
expect(textField.value).toBe(textValue);
});
});