n8n/cypress/e2e/39-import-workflow.cy.ts

75 lines
2.2 KiB
TypeScript

import { WorkflowPage } from '../pages';
import { MessageBox as MessageBoxClass } from '../pages/modals/message-box';
const workflowPage = new WorkflowPage();
const messageBox = new MessageBoxClass();
before(() => {
cy.fixture('Onboarding_workflow.json').then((data) => {
cy.intercept('GET', '/rest/workflows/from-url*', {
body: { data },
}).as('downloadWorkflowFromURL');
});
});
describe('Import workflow', () => {
describe('From URL', () => {
it('should import workflow', () => {
workflowPage.actions.visit(true);
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
messageBox.getters.modal().should('be.visible');
messageBox.getters.content().type('https://fakepage.com/workflow.json');
messageBox.getters.confirm().click();
workflowPage.actions.zoomToFit();
workflowPage.getters.canvasNodes().should('have.length', 4);
workflowPage.getters.errorToast().should('not.exist');
workflowPage.getters.successToast().should('not.exist');
});
it('clicking outside modal should not show error toast', () => {
workflowPage.actions.visit(true);
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
cy.get('body').click(0, 0);
workflowPage.getters.errorToast().should('not.exist');
});
it('canceling modal should not show error toast', () => {
workflowPage.actions.visit(true);
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
messageBox.getters.cancel().click();
workflowPage.getters.errorToast().should('not.exist');
});
});
describe('From File', () => {
it('should import workflow', () => {
workflowPage.actions.visit(true);
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromFile().click();
workflowPage.getters
.workflowImportInput()
.selectFile('cypress/fixtures/Test_workflow-actions_paste-data.json', { force: true });
cy.waitForLoad(false);
workflowPage.actions.zoomToFit();
workflowPage.getters.canvasNodes().should('have.length', 5);
workflowPage.getters.nodeConnections().should('have.length', 5);
});
});
});