Skip to content

Commit 28cdfc0

Browse files
committed
fixes test failures
1 parent 5bd60c2 commit 28cdfc0

File tree

9 files changed

+246
-261
lines changed

9 files changed

+246
-261
lines changed

cypress/e2e/awx/resources/credentials.cy.ts

Lines changed: 169 additions & 240 deletions
Large diffs are not rendered by default.

cypress/e2e/awx/resources/inventorySource.cy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ describe.skip('Inventory Sources', () => {
7777
cy.getBy('[data-cy="name"]').type('project source');
7878
cy.selectDropdownOptionByResourceName('source_control_type', 'Sourced from a Project');
7979
cy.selectDropdownOptionByResourceName('project', project.name);
80-
cy.selectDropdownOptionByResourceName('inventory', 'Dockerfile');
80+
cy.singleSelectByDataCy('inventory', 'Dockerfile');
8181
cy.singleSelectBy(
8282
'[data-cy="executionEnvironment-form-group"]',
8383
executionEnvironment.name
@@ -165,7 +165,7 @@ describe.skip('Inventory Sources', () => {
165165
cy.getBy('[data-cy="overwrite_vars"]').check();
166166
cy.getBy('[data-cy="update_on_launch"]').check();
167167
cy.selectDropdownOptionByResourceName('project', project.name);
168-
cy.selectDropdownOptionByResourceName('inventory', 'Dockerfile');
168+
cy.singleSelectByDataCy('inventory', 'Dockerfile');
169169
cy.getBy('[data-cy="Submit"]').click();
170170
// Verify edited details
171171
cy.location('pathname').should('match', /\/details$/);

cypress/e2e/awx/resources/jobTemplates.cy.ts

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ describe.skip('Job Templates Tests', function () {
7373
cy.clickLink(/^Create job template$/);
7474
cy.getBy('[data-cy="name"]').type(jtName);
7575
cy.getBy('[data-cy="description"]').type('This is a JT description');
76-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
77-
cy.selectDropdownOptionByResourceName('project', `${project.name}`);
76+
cy.singleSelectByDataCy('inventory', inventory.name);
77+
cy.singleSelectByDataCy('project', `${(this.globalProject as Project).name}`);
7878
cy.selectDropdownOptionByResourceName('playbook', 'hello_world.yml');
7979
cy.getBy('[data-cy="Submit"]').click();
8080
cy.wait('@createJT')
@@ -110,6 +110,33 @@ describe.skip('Job Templates Tests', function () {
110110
});
111111
});
112112

113+
it('can create a job template that inherits the execution environment from the project', function () {
114+
cy.createAwxExecutionEnvironment({
115+
organization: awxOrganization.id,
116+
}).then((ee: ExecutionEnvironment) => {
117+
executionEnvironment = ee;
118+
cy.createAwxProject(awxOrganization, {
119+
default_environment: ee.id,
120+
}).then((proj: Project) => {
121+
project = proj;
122+
cy.intercept('POST', awxAPI`/job_templates`).as('createJT');
123+
const jtName = 'E2E-JT ' + randomString(4);
124+
cy.navigateTo('awx', 'templates');
125+
cy.getBy('[data-cy="create-template"]').click();
126+
cy.clickLink(/^Create job template$/);
127+
cy.getBy('[data-cy="name"]').type(jtName);
128+
cy.getBy('[data-cy="description"]').type('This is a JT description');
129+
cy.singleSelectByDataCy('inventory', inventory.name);
130+
cy.singleSelectByDataCy('project', proj.name);
131+
cy.selectDropdownOptionByResourceName('playbook', 'hello_world.yml');
132+
cy.getBy('[data-cy="Submit"]').click();
133+
cy.wait('@createJT');
134+
cy.getByDataCy('execution-environment').contains(ee.name);
135+
cy.getByDataCy('project').contains(proj.name);
136+
});
137+
});
138+
});
139+
113140
it('can create a job template using the prompt on launch wizard', function () {
114141
cy.intercept('POST', awxAPI`/job_templates`).as('createPOLJT');
115142
const jtName = 'E2E-POLJT ' + randomString(4);
@@ -119,7 +146,7 @@ describe.skip('Job Templates Tests', function () {
119146
cy.getBy('[data-cy="name"]').type(jtName);
120147
cy.getBy('[data-cy="description"]').type('This is a JT with POL wizard description');
121148
cy.selectPromptOnLaunch('inventory');
122-
cy.selectDropdownOptionByResourceName('project', `${project.name}`);
149+
cy.singleSelectByDataCy('project', `${project.name}`);
123150
cy.selectDropdownOptionByResourceName('playbook', 'hello_world.yml');
124151
cy.selectPromptOnLaunch('execution_environment');
125152
cy.selectPromptOnLaunch('credential');
@@ -133,7 +160,7 @@ describe.skip('Job Templates Tests', function () {
133160
cy.filterTableByMultiSelect('name', [jtName]);
134161
cy.getTableRow('name', jtName, { disableFilter: true }).should('be.visible');
135162
cy.clickTableRowAction('name', jtName, 'launch-template', { disableFilter: true });
136-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
163+
cy.singleSelectByDataCy('inventory', inventory.name);
137164
cy.clickButton(/^Next/);
138165
cy.multiSelectByDataCy('credential', [machineCredential.name]);
139166
cy.clickButton(/^Next/);
@@ -185,7 +212,7 @@ describe.skip('Job Templates Tests', function () {
185212
cy.getBy('[data-cy="name"]').type(jtName);
186213
cy.getBy('[data-cy="description"]').type('This is a JT with POL wizard description');
187214
cy.selectPromptOnLaunch('inventory');
188-
cy.selectDropdownOptionByResourceName('project', `${project.name}`);
215+
cy.singleSelectByDataCy('project', `${project.name}`);
189216
cy.selectDropdownOptionByResourceName('playbook', 'hello_world.yml');
190217
cy.selectPromptOnLaunch('execution_environment');
191218
cy.selectPromptOnLaunch('credential');
@@ -196,7 +223,7 @@ describe.skip('Job Templates Tests', function () {
196223
.then((id: string) => {
197224
cy.verifyPageTitle(jtName);
198225
cy.clickButton(/^Launch template$/);
199-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
226+
cy.singleSelectByDataCy('inventory', inventory.name);
200227
cy.clickButton(/^Next/);
201228
cy.selectItemFromLookupModal('credential-select', machineCredential.name);
202229
cy.clickButton(/^Next/);
@@ -252,8 +279,8 @@ describe.skip('Job Templates Tests', function () {
252279
cy.getBy('[data-cy="create-template"]').click();
253280
cy.clickLink(/^Create job template$/);
254281
cy.getByDataCy('name').type(jtName);
255-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
256-
cy.selectDropdownOptionByResourceName('project', gitProject.name);
282+
cy.singleSelectByDataCy('inventory', inventory.name);
283+
cy.singleSelectByDataCy('project', gitProject.name);
257284
cy.selectDropdownOptionByResourceName('playbook', 'debug-loop.yml');
258285
cy.getByDataCy('allow_simultaneous').click();
259286
cy.clickButton('Create job template');
@@ -373,7 +400,7 @@ describe.skip('Job Templates Tests', function () {
373400
cy.verifyPageTitle(jobTemplate.name);
374401
cy.getByDataCy('inventory').contains('Deleted');
375402
cy.clickLink('Edit template');
376-
cy.selectDropdownOptionByResourceName('inventory', inv.name);
403+
cy.singleSelectByDataCy('inventory', inv.name);
377404
cy.intercept('PATCH', awxAPI`/job_templates/${jobTemplate.id.toString()}/`).as('saveJT');
378405
cy.clickButton('Save job template');
379406
cy.wait('@saveJT');

cypress/e2e/awx/resources/workflowJobTemplates.cy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ describe('Workflow Job Templates Tests', () => {
5252
});
5353
cy.get('[data-cy="description"]').type('this is a new description');
5454
cy.singleSelectBy('[data-cy="organization"]', organization.name);
55-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
55+
cy.singleSelectByDataCy('inventory', inventory.name);
5656
cy.get('[data-cy="limit"]').type('mock-limit');
5757
cy.get('[data-cy="scm-branch"]').type('mock-scm-branch');
5858
cy.selectDropdownOptionByResourceName('labels', label.name.toString());
@@ -91,7 +91,7 @@ describe('Workflow Job Templates Tests', () => {
9191
cy.get('[data-cy="name"]').type(jtName);
9292
cy.get('[data-cy="description"]').type('this is a description');
9393
cy.singleSelectBy('[data-cy="organization"]', organization.name);
94-
cy.selectDropdownOptionByResourceName('inventory', inventory.name);
94+
cy.singleSelectByDataCy('inventory', inventory.name);
9595
cy.get('[data-cy="limit"]').type('mock-limit');
9696
cy.get('[data-cy="scm-branch"]').type('mock-scm-branch');
9797
cy.selectDropdownOptionByResourceName('labels', label.name.toString());

cypress/e2e/awx/resources/workflowVisualizerCRUD.cy.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,10 +218,7 @@ describe('Workflow Visualizer', () => {
218218
'Node type * Project Sync'
219219
);
220220
cy.selectDropdownOptionByResourceName('node-type', 'Inventory Source Sync');
221-
cy.selectDropdownOptionByResourceName(
222-
'inventory-source-select',
223-
`${inventorySource.name}`
224-
);
221+
cy.singleSelectByDataCy('inventory-source-select', `${inventorySource.name}`);
225222
cy.selectDropdownOptionByResourceName('node-convergence', 'All');
226223
cy.getByDataCy('node-alias').type('Inventory Source Node');
227224
cy.clickButton('Next');

cypress/e2e/awx/views/schedules.cy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ describe.skip('Schedules - Create and Delete', () => {
324324
const scheduleName = 'E2E Simple Schedule Inventory ' + randomString(4);
325325
cy.getBy('[data-cy="create-schedule"]').click();
326326
cy.selectDropdownOptionByResourceName('schedule_type', 'Inventory source');
327-
cy.selectDropdownOptionByResourceName('inventory', `${inventory.name}`);
327+
cy.singleSelectByDataCy('inventory', `${inventory.name}`);
328328
cy.selectDropdownOptionByResourceName('inventory-source-select', `${inventorySource.name}`);
329329
cy.getByDataCy('name').type(`${scheduleName}`);
330330
cy.singleSelectByDataCy('timezone', 'Zulu');

frontend/awx/resources/templates/JobTemplateForm.cy.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ describe('Create job template ', () => {
144144
cy.get('[data-cy="name"]').type('Test');
145145
cy.get('button[aria-describedby="job_type-form-group"]').click();
146146
cy.clickButton(/^Check$/);
147-
cy.selectDropdownOptionByResourceName('inventory', 'Demo Inventory');
147+
cy.singleSelectByDataCy('inventory', 'Demo Inventory');
148148
cy.selectDropdownOptionByResourceName('project', 'Demo Project').as('ProjectInput');
149149
cy.selectDropdownOptionByResourceName('playbook', 'hello_world.yml');
150150
cy.multiSelectByDataCy('instance-group-select-form-group', [instanceGroups[0].name]);

frontend/awx/resources/templates/WorkflowJobTemplateForm.cy.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ describe('Create job template ', () => {
4242
cy.mount(<CreateWorkflowJobTemplate />);
4343
cy.get('[data-cy="name"]').type('Test');
4444

45-
cy.selectDropdownOptionByResourceName('inventory', 'Demo Inventory');
45+
cy.singleSelectByDataCy('inventory', 'Demo Inventory');
4646

4747
cy.clickButton('Create workflow job template');
4848

frontend/awx/views/schedules/wizard/ScheduleAddWizard.cy.tsx

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,8 @@ describe('ScheduleAddWizard', () => {
8787
});
8888
});
8989

90+
cy.selectDropdownOptionByResourceName('schedule_type', 'Job template');
91+
cy.singleSelectByDataCy('job-template-select', 'Mock Job Template');
9092
cy.get('[data-cy="name"]').type('Test Schedule');
9193
cy.clickButton(/^Next$/);
9294

@@ -245,6 +247,10 @@ describe('ScheduleAddWizard', () => {
245247
});
246248
});
247249

250+
cy.selectDropdownOptionByResourceName('schedule_type', 'Inventory source');
251+
cy.singleSelectByDataCy('inventory', 'Mock Inventory');
252+
cy.selectDropdownOptionByResourceName('inventory-source-select', 'Mock Inventory source');
253+
248254
cy.get('[data-cy="name"]').type('Test Schedule');
249255
cy.clickButton(/^Next$/);
250256

@@ -332,7 +338,7 @@ describe('ScheduleAddWizard', () => {
332338
});
333339

334340
cy.selectDropdownOptionByResourceName('schedule_type', 'Job template');
335-
cy.selectDropdownOptionByResourceName('job-template-select', 'Mock Job Template');
341+
cy.singleSelectByDataCy('job-template-select', 'Mock Job Template');
336342
cy.get('[data-cy="name"]').type('Test Schedule');
337343
cy.selectSingleSelectOption('[data-cy="timezone"]', 'Zulu');
338344
cy.clickButton(/^Next$/);
@@ -410,4 +416,30 @@ describe('ScheduleAddWizard', () => {
410416
});
411417
});
412418
});
419+
420+
describe('Saving a schedule', () => {
421+
beforeEach(() => {
422+
cy.intercept({ method: 'GET', url: awxAPI`/job_templates/*` }, mockTemplates);
423+
cy.intercept('/api/v2/job_templates/100/', { id: 100, name: 'Mock Job Template' });
424+
cy.intercept('/api/v2/job_templates/100/launch/', {});
425+
cy.mount(<ScheduleAddWizard />, {
426+
initialEntries: ['/schedules/add'],
427+
path: '/schedules/add',
428+
});
429+
430+
cy.get('[data-cy="wizard-nav"]').within(() => {
431+
['Details', 'Rules', 'Exceptions', 'Review'].forEach((text, index) => {
432+
cy.get('li')
433+
.eq(index)
434+
.should((el) => expect(el.text().trim()).to.equal(text));
435+
});
436+
});
437+
438+
cy.selectDropdownOptionByResourceName('schedule_type', 'Job template');
439+
cy.singleSelectByDataCy('job-template-select', 'Mock Job Template');
440+
cy.get('[data-cy="name"]').type('Test Schedule');
441+
cy.selectSingleSelectOption('[data-cy="timezone"]', 'Zulu');
442+
cy.clickButton(/^Next$/);
443+
});
444+
});
413445
});

0 commit comments

Comments
 (0)