diff --git a/awx/ui_next/src/components/Schedule/ScheduleDetail/ScheduleDetail.test.jsx b/awx/ui_next/src/components/Schedule/ScheduleDetail/ScheduleDetail.test.jsx index e2c40b8bf7..920a7029fd 100644 --- a/awx/ui_next/src/components/Schedule/ScheduleDetail/ScheduleDetail.test.jsx +++ b/awx/ui_next/src/components/Schedule/ScheduleDetail/ScheduleDetail.test.jsx @@ -73,10 +73,6 @@ const schedule = { first_name: '', last_name: '', }, - inventory: { - id: 1, - name: 'Test Inventory', - }, }, created: '2020-03-03T20:38:54.210306Z', modified: '2020-03-03T20:38:54.210336Z', @@ -88,6 +84,27 @@ const schedule = { dtend: '2020-07-06T04:00:00Z', next_run: '2020-03-16T04:00:00Z', extra_data: {}, + inventory: null, + scm_branch: null, + job_type: null, + job_tags: null, + skip_tags: null, + limit: null, + diff_mode: null, + verbosity: null, +}; + +const scheduleWithPrompts = { + ...schedule, + job_type: 'run', + inventory: 1, + job_tags: 'tag1', + skip_tags: 'tag2', + scm_branch: 'foo/branch', + limit: 'localhost', + diff_mode: true, + verbosity: 1, + extra_data: { foo: 'fii' }, }; SchedulesAPI.createPreview.mockResolvedValue({ @@ -166,6 +183,7 @@ describe('', () => { 0 ); expect(wrapper.find('Detail[label="Limit"]').length).toBe(0); + expect(wrapper.find('Detail[label="Verbosity"]').length).toBe(0); expect(wrapper.find('Detail[label="Show Changes"]').length).toBe(0); expect(wrapper.find('Detail[label="Credentials"]').length).toBe(0); expect(wrapper.find('Detail[label="Job Tags"]').length).toBe(0); @@ -189,18 +207,6 @@ describe('', () => { }, }); JobTemplatesAPI.readLaunch.mockResolvedValueOnce(allPrompts); - const scheduleWithPrompts = { - ...schedule, - job_type: 'run', - inventory: 1, - job_tags: 'tag1', - skip_tags: 'tag2', - scm_branch: 'foo/branch', - limit: 'localhost', - diff_mode: true, - verbosity: 1, - extra_data: { foo: 'fii' }, - }; await act(async () => { wrapper = mountWithContexts( ', () => { .find('dd') .text() ).toBe('localhost'); + expect( + wrapper + .find('Detail[label="Verbosity"]') + .find('dd') + .text() + ).toBe('1 (Verbose)'); expect(wrapper.find('Detail[label="Show Changes"]').length).toBe(1); expect(wrapper.find('Detail[label="Credentials"]').length).toBe(1); expect(wrapper.find('Detail[label="Job Tags"]').length).toBe(1); expect(wrapper.find('Detail[label="Skip Tags"]').length).toBe(1); expect(wrapper.find('VariablesDetail').length).toBe(1); }); + test('prompt values section should be hidden if no overrides are present on the schedule but ask_ options are all true', async () => { + SchedulesAPI.readCredentials.mockResolvedValueOnce({ + data: { + count: 0, + results: [], + }, + }); + JobTemplatesAPI.readLaunch.mockResolvedValueOnce(allPrompts); + await act(async () => { + wrapper = mountWithContexts( + } + />, + { + context: { + router: { + history, + route: { + location: history.location, + match: { params: { id: 1 } }, + }, + }, + }, + } + ); + }); + await waitForElement(wrapper, 'ContentLoading', el => el.length === 0); + expect(wrapper.find('Title[children="Prompted Values"]').length).toBe(0); + expect(wrapper.find('Detail[label="Job Type"]').length).toBe(0); + expect(wrapper.find('Detail[label="Inventory"]').length).toBe(0); + expect(wrapper.find('Detail[label="Source Control Branch"]').length).toBe( + 0 + ); + expect(wrapper.find('Detail[label="Limit"]').length).toBe(0); + expect(wrapper.find('Detail[label="Verbosity"]').length).toBe(0); + expect(wrapper.find('Detail[label="Show Changes"]').length).toBe(0); + expect(wrapper.find('Detail[label="Credentials"]').length).toBe(0); + expect(wrapper.find('Detail[label="Job Tags"]').length).toBe(0); + expect(wrapper.find('Detail[label="Skip Tags"]').length).toBe(0); + expect(wrapper.find('VariablesDetail').length).toBe(0); + }); + test('prompt values section should be hidden if overrides are present on the schedule but ask_ options are all false', async () => { + SchedulesAPI.readCredentials.mockResolvedValueOnce({ + data: { + count: 0, + results: [], + }, + }); + JobTemplatesAPI.readLaunch.mockResolvedValueOnce(noPrompts); + await act(async () => { + wrapper = mountWithContexts( + } + />, + { + context: { + router: { + history, + route: { + location: history.location, + match: { params: { id: 1 } }, + }, + }, + }, + } + ); + }); + await waitForElement(wrapper, 'ContentLoading', el => el.length === 0); + expect(wrapper.find('Title[children="Prompted Values"]').length).toBe(0); + expect(wrapper.find('Detail[label="Job Type"]').length).toBe(0); + expect(wrapper.find('Detail[label="Inventory"]').length).toBe(0); + expect(wrapper.find('Detail[label="Source Control Branch"]').length).toBe( + 0 + ); + expect(wrapper.find('Detail[label="Limit"]').length).toBe(0); + expect(wrapper.find('Detail[label="Verbosity"]').length).toBe(0); + expect(wrapper.find('Detail[label="Show Changes"]').length).toBe(0); + expect(wrapper.find('Detail[label="Credentials"]').length).toBe(0); + expect(wrapper.find('Detail[label="Job Tags"]').length).toBe(0); + expect(wrapper.find('Detail[label="Skip Tags"]').length).toBe(0); + expect(wrapper.find('VariablesDetail').length).toBe(0); + }); test('error shown when error encountered fetching credentials', async () => { SchedulesAPI.readCredentials.mockRejectedValueOnce( new Error({