mirror of
https://github.com/ansible/awx.git
synced 2026-01-13 11:00:03 -03:30
adds tests
This commit is contained in:
parent
60751dfa16
commit
72c6ff095f
@ -104,4 +104,30 @@ describe('PreviewStep', () => {
|
||||
extra_vars: 'one: 1',
|
||||
});
|
||||
});
|
||||
test('should remove survey with empty array value', async () => {
|
||||
let wrapper;
|
||||
await act(async () => {
|
||||
wrapper = mountWithContexts(
|
||||
<Formik
|
||||
initialValues={{ extra_vars: 'one: 1' }}
|
||||
values={{ extra_vars: 'one: 1', survey_foo: [] }}
|
||||
>
|
||||
<PreviewStep
|
||||
resource={resource}
|
||||
config={{
|
||||
ask_variables_on_launch: true,
|
||||
}}
|
||||
formErrors={formErrors}
|
||||
/>
|
||||
</Formik>
|
||||
);
|
||||
});
|
||||
|
||||
const detail = wrapper.find('PromptDetail');
|
||||
expect(detail).toHaveLength(1);
|
||||
expect(detail.prop('resource')).toEqual(resource);
|
||||
expect(detail.prop('overrides')).toEqual({
|
||||
extra_vars: 'one: 1',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -1,6 +1,9 @@
|
||||
import React from 'react';
|
||||
import { act } from 'react-dom/test-utils';
|
||||
import { mountWithContexts } from '../../../../../../testUtils/enzymeHelpers';
|
||||
import {
|
||||
mountWithContexts,
|
||||
waitForElement,
|
||||
} from '../../../../../../testUtils/enzymeHelpers';
|
||||
import {
|
||||
WorkflowDispatchContext,
|
||||
WorkflowStateContext,
|
||||
@ -9,10 +12,17 @@ import NodeEditModal from './NodeEditModal';
|
||||
|
||||
const dispatch = jest.fn();
|
||||
|
||||
const nodeResource = {
|
||||
id: 448,
|
||||
type: 'job_template',
|
||||
name: 'Test JT',
|
||||
jest.mock('../../../../../api/models/InventorySources');
|
||||
jest.mock('../../../../../api/models/JobTemplates');
|
||||
jest.mock('../../../../../api/models/Projects');
|
||||
jest.mock('../../../../../api/models/WorkflowJobTemplates');
|
||||
const values = {
|
||||
inventory: undefined,
|
||||
nodeResource: {
|
||||
id: 448,
|
||||
name: 'Test JT',
|
||||
type: 'job_template',
|
||||
},
|
||||
};
|
||||
|
||||
const workflowContext = {
|
||||
@ -22,27 +32,40 @@ const workflowContext = {
|
||||
id: 30,
|
||||
name: 'Foo JT',
|
||||
type: 'job_template',
|
||||
unified_job_type: 'job',
|
||||
},
|
||||
originalNodeObject: {
|
||||
summary_fields: { unified_job_template: { id: 1, name: 'Job Template' } },
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
describe('NodeEditModal', () => {
|
||||
test('Node modal confirmation dispatches as expected', () => {
|
||||
test('Node modal confirmation dispatches as expected', async () => {
|
||||
const wrapper = mountWithContexts(
|
||||
<WorkflowDispatchContext.Provider value={dispatch}>
|
||||
<WorkflowStateContext.Provider value={workflowContext}>
|
||||
<NodeEditModal />
|
||||
<NodeEditModal
|
||||
onSave={() => {}}
|
||||
askLinkType={false}
|
||||
title="Edit Node"
|
||||
/>
|
||||
</WorkflowStateContext.Provider>
|
||||
</WorkflowDispatchContext.Provider>
|
||||
);
|
||||
act(() => {
|
||||
wrapper.find('NodeModal').prop('onSave')(nodeResource);
|
||||
waitForElement(
|
||||
wrapper,
|
||||
'WizardNavItem[content="ContentLoading"]',
|
||||
el => el.length === 0
|
||||
);
|
||||
await act(async () => {
|
||||
wrapper.find('NodeModal').prop('onSave')(values, {});
|
||||
});
|
||||
expect(dispatch).toHaveBeenCalledWith({
|
||||
type: 'UPDATE_NODE',
|
||||
node: {
|
||||
nodeResource,
|
||||
nodeResource: { id: 448, name: 'Test JT', type: 'job_template' },
|
||||
},
|
||||
type: 'UPDATE_NODE',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -111,7 +111,15 @@ describe('NodeModal', () => {
|
||||
data: {
|
||||
name: '',
|
||||
description: '',
|
||||
spec: [{ question_name: 'Foo', required: true }],
|
||||
spec: [
|
||||
{
|
||||
question_name: 'Foo',
|
||||
required: true,
|
||||
variable: 'bar',
|
||||
type: 'text',
|
||||
default: 'answer',
|
||||
},
|
||||
],
|
||||
type: 'text',
|
||||
variable: 'bar',
|
||||
},
|
||||
@ -254,10 +262,12 @@ describe('NodeModal', () => {
|
||||
expect(JobTemplatesAPI.readSurvey).toBeCalledWith(25);
|
||||
wrapper.update();
|
||||
expect(wrapper.find('NodeNextButton').prop('buttonText')).toBe('Next');
|
||||
wrapper
|
||||
.find('WizardNavItem[content="Preview"]')
|
||||
.find('a')
|
||||
.prop('onClick')();
|
||||
act(() => {
|
||||
wrapper
|
||||
.find('WizardNavItem[content="Preview"]')
|
||||
.find('a')
|
||||
.prop('onClick')();
|
||||
});
|
||||
wrapper.update();
|
||||
|
||||
await act(async () => {
|
||||
@ -469,7 +479,7 @@ describe('NodeModal', () => {
|
||||
approvalDescription: 'Test Approval Description',
|
||||
approvalName: 'Test Approval',
|
||||
linkType: 'always',
|
||||
nodeResource: undefined,
|
||||
nodeResource: null,
|
||||
nodeType: 'approval',
|
||||
timeout: 330,
|
||||
verbosity: undefined,
|
||||
@ -573,7 +583,7 @@ describe('NodeModal', () => {
|
||||
approvalDescription: 'Test Approval Description',
|
||||
approvalName: 'Test Approval',
|
||||
linkType: 'success',
|
||||
nodeResource: undefined,
|
||||
nodeResource: null,
|
||||
nodeType: 'approval',
|
||||
timeout: 330,
|
||||
verbosity: undefined,
|
||||
|
||||
@ -11,10 +11,10 @@ import {
|
||||
|
||||
import NodeTypeStep from './NodeTypeStep';
|
||||
|
||||
jest.mock('../../../../api/models/InventorySources');
|
||||
jest.mock('../../../../api/models/JobTemplates');
|
||||
jest.mock('../../../../api/models/Projects');
|
||||
jest.mock('../../../../api/models/WorkflowJobTemplates');
|
||||
jest.mock('../../../../../../api/models/InventorySources');
|
||||
jest.mock('../../../../../../api/models/JobTemplates');
|
||||
jest.mock('../../../../../../api/models/Projects');
|
||||
jest.mock('../../../../../../api/models/WorkflowJobTemplates');
|
||||
|
||||
describe('NodeTypeStep', () => {
|
||||
beforeAll(() => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user