import React from 'react';
import { Provider } from 'react-redux';
import { fireEvent, screen, render, act } from '@testing-library/react';
import { MockedProvider } from '@apollo/client/testing';
import * as api from 'foremanReact/redux/API';
import { JobWizard } from '../../../JobWizard';
import * as selectors from '../../../JobWizardSelectors';
import { testSetup, mockApi, gqlMock } 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(
);
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);
});
it('should set back default data', async () => {
render(
);
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('Reset to default'));
});
expect(textField.value).toBe('Default val');
});
});