import { randFirstName, randLastName } from "@ngneat/falso"; import { DEFAULT_USER_EMAIL, DEFAULT_USER_PASSWORD } from "../constants"; import { WorkflowPage as WorkflowPageClass } from '../pages/workflow'; const NEW_WORKFLOW_NAME = 'Something else'; const MANUAL_TRIGGER_NODE_NAME = 'Manual Trigger'; const SCHEDULE_TRIGGER_NODE_NAME = 'Schedule Trigger'; const username = DEFAULT_USER_EMAIL; const password = DEFAULT_USER_PASSWORD; const firstName = randFirstName(); const lastName = randLastName(); const WorkflowPage = new WorkflowPageClass(); describe('Workflow Actions', () => { beforeEach(() => { cy.signup(username, firstName, lastName, password); cy.on('uncaught:exception', (err, runnable) => { expect(err.message).to.include('Not logged in'); return false; }) cy.signin(username, password); WorkflowPage.actions.visit(); }); it('should be able to save on button slick', () => { WorkflowPage.actions.saveWorkflowOnButtonClick(); // In Element UI, disabled button turn into spans 🤷‍♂️ WorkflowPage.getters.saveButton().should('match', 'span'); }); it('should save workflow on keyboard shortcut', () => { WorkflowPage.actions.saveWorkflowUsingKeyboardShortcut(); WorkflowPage.getters.saveButton().should('match', 'span'); }); it('should not be able to activate unsaved workflow', () => { WorkflowPage.getters.activatorSwitch().find('input').first().should('be.disabled'); }); it('should not be able to activate workflow without trigger node', () => { // Manual trigger is not enough to activate the workflow WorkflowPage.actions.addNodeToCanvas(MANUAL_TRIGGER_NODE_NAME); WorkflowPage.actions.saveWorkflowOnButtonClick(); WorkflowPage.getters.activatorSwitch().find('input').first().should('be.disabled'); }); it('should be able to activate workflow', () => { WorkflowPage.actions.addNodeToCanvas(SCHEDULE_TRIGGER_NODE_NAME); WorkflowPage.actions.saveWorkflowOnButtonClick(); WorkflowPage.actions.activateWorkflow(); WorkflowPage.getters.activatorSwitch().should('have.class', 'is-checked'); }); it('should save new workflow after renaming', () => { WorkflowPage.actions.renameWorkflow(NEW_WORKFLOW_NAME); WorkflowPage.getters.saveButton().should('match', 'span'); }); it('should rename workflow', () => { WorkflowPage.actions.addNodeToCanvas(SCHEDULE_TRIGGER_NODE_NAME); WorkflowPage.actions.saveWorkflowOnButtonClick(); WorkflowPage.actions.renameWorkflow(NEW_WORKFLOW_NAME); WorkflowPage.getters.saveButton().should('match', 'span'); WorkflowPage.getters.workflowNameInput().invoke('attr', 'title').should('eq', NEW_WORKFLOW_NAME); }); });