qe-fe-automation
Version:
FE test automation framework using cypress
99 lines (91 loc) • 3.35 kB
text/typescript
const groupTravelSettingsSelectors = {
eventApprovalMainToggle: '[data-testid="toggleGroupTravelWorkflow"]',
eventApprovalMainInput: '[data-testid="toggleGroupTravelWorkflow"] input',
eventApprovalManagerToggle: '[data-testid="toggleGroupTravelApprovalManagers"]',
eventApprovalManagerInput: '[data-testid="toggleGroupTravelApprovalManagers"] input',
eventApprovalDelegateToggle: '[data-testid="toggleGroupTravelApprovalDelegates"]',
eventApprovalDelegateInput: '[data-testid="toggleGroupTravelApprovalDelegates"] input'
};
export class GroupTravelSettings {
static visitOverviewPage(): void {
cy.visit('app/admin2/settings/overview');
}
static selectToggle(value: string, inputSelector: string, toggleSelector: string) {
cy.allure().logStep('select a toggle for event approval flow');
cy.get(inputSelector).then(($ele) => {
if ($ele.attr('aria-checked') == value) {
cy.get(toggleSelector).click();
}
});
}
static selectEventApprovalFlow(
toggle:
| 'approval is not required'
| 'not required for managers'
| 'not required for delegates'
| 'not required for managers and delegates'
) {
switch (toggle) {
case 'approval is not required':
this.selectToggle(
'true',
groupTravelSettingsSelectors.eventApprovalMainInput,
groupTravelSettingsSelectors.eventApprovalMainToggle
);
break;
case 'not required for managers':
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalMainInput,
groupTravelSettingsSelectors.eventApprovalMainToggle
);
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalManagerInput,
groupTravelSettingsSelectors.eventApprovalManagerToggle
);
this.selectToggle(
'true',
groupTravelSettingsSelectors.eventApprovalDelegateInput,
groupTravelSettingsSelectors.eventApprovalDelegateToggle
);
break;
case 'not required for delegates':
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalMainInput,
groupTravelSettingsSelectors.eventApprovalMainToggle
);
this.selectToggle(
'true',
groupTravelSettingsSelectors.eventApprovalManagerInput,
groupTravelSettingsSelectors.eventApprovalManagerToggle
);
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalDelegateInput,
groupTravelSettingsSelectors.eventApprovalDelegateToggle
);
break;
case 'not required for managers and delegates':
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalMainInput,
groupTravelSettingsSelectors.eventApprovalMainToggle
);
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalManagerInput,
groupTravelSettingsSelectors.eventApprovalManagerToggle
);
this.selectToggle(
'false',
groupTravelSettingsSelectors.eventApprovalDelegateInput,
groupTravelSettingsSelectors.eventApprovalDelegateToggle
);
break;
default:
break;
}
}
}