UNPKG

qe-fe-automation

Version:
99 lines (91 loc) 3.35 kB
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; } } }