From aa2890931311fe9f71a4527de1a01999e8946dd2 Mon Sep 17 00:00:00 2001 From: Keith Grant Date: Wed, 13 May 2020 10:25:00 -0700 Subject: [PATCH] add PreviewStep tests --- .../LaunchPrompt/steps/PreviewStep.jsx | 6 +- .../LaunchPrompt/steps/PreviewStep.test.jsx | 78 +++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.test.jsx diff --git a/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx index 154f31a44d..f7e8ed1c36 100644 --- a/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx +++ b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.jsx @@ -14,9 +14,11 @@ function PreviewStep({ resource, config, survey, formErrors }) { .filter(q => q.type === 'password') .map(q => q.variable); const masked = maskPasswords(surveyValues, passwordFields); - extraVars = yaml.safeDump(mergeExtraVars(values.extra_vars, masked)); + extraVars = yaml.safeDump( + mergeExtraVars(values.extra_vars || '---', masked) + ); } else { - extraVars = values.extra_vars; + extraVars = values.extra_vars || '---'; } return ( <> diff --git a/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.test.jsx b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.test.jsx new file mode 100644 index 0000000000..623620662d --- /dev/null +++ b/awx/ui_next/src/components/LaunchPrompt/steps/PreviewStep.test.jsx @@ -0,0 +1,78 @@ +import React from 'react'; +import { act } from 'react-dom/test-utils'; +import { Formik } from 'formik'; +import { mountWithContexts } from '@testUtils/enzymeHelpers'; +import PreviewStep from './PreviewStep'; + +const resource = { + id: 1, + type: 'job_template', + summary_fields: { + inventory: { id: 12 }, + recent_jobs: [], + }, + related: {}, +}; + +const survey = { + name: '', + spec: [ + { + variable: 'foo', + type: 'text', + }, + ], +}; + +describe('PreviewStep', () => { + test('should render PromptDetail', async () => { + let wrapper; + await act(async () => { + wrapper = mountWithContexts( + + + + ); + }); + + const detail = wrapper.find('PromptDetail'); + expect(detail).toHaveLength(1); + expect(detail.prop('resource')).toEqual(resource); + expect(detail.prop('overrides')).toEqual({ + extra_vars: 'foo: abc\n', + limit: '4', + survey_foo: 'abc', + }); + }); + + test('should render PromptDetail without survey', async () => { + let wrapper; + await act(async () => { + wrapper = mountWithContexts( + + + + ); + }); + + const detail = wrapper.find('PromptDetail'); + expect(detail).toHaveLength(1); + expect(detail.prop('resource')).toEqual(resource); + expect(detail.prop('overrides')).toEqual({ + extra_vars: '---', + limit: '4', + }); + }); +});