Skip to content

Commit f6ce81e

Browse files
authored
fix(editor): Canvas showing error toast when clicking outside of "import workflow by url" modal (#9001)
1 parent 0ac9851 commit f6ce81e

File tree

3 files changed

+78
-26
lines changed

3 files changed

+78
-26
lines changed

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

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import { WorkflowPage } from '../pages';
2+
import { MessageBox as MessageBoxClass } from '../pages/modals/message-box';
3+
4+
const workflowPage = new WorkflowPage();
5+
const messageBox = new MessageBoxClass();
6+
7+
before(() => {
8+
cy.fixture('Onboarding_workflow.json').then((data) => {
9+
cy.intercept('GET', '/rest/workflows/from-url*', {
10+
body: { data },
11+
}).as('downloadWorkflowFromURL');
12+
});
13+
});
14+
15+
describe('Import workflow', () => {
16+
describe('From URL', () => {
17+
it('should import workflow', () => {
18+
workflowPage.actions.visit(true);
19+
workflowPage.getters.workflowMenu().click();
20+
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
21+
22+
messageBox.getters.modal().should('be.visible');
23+
24+
messageBox.getters.content().type('https://fakepage.com/workflow.json');
25+
26+
messageBox.getters.confirm().click();
27+
28+
workflowPage.actions.zoomToFit();
29+
30+
workflowPage.getters.canvasNodes().should('have.length', 4);
31+
32+
workflowPage.getters.errorToast().should('not.exist');
33+
34+
workflowPage.getters.successToast().should('not.exist');
35+
});
36+
37+
it('clicking outside modal should not show error toast', () => {
38+
workflowPage.actions.visit(true);
39+
40+
workflowPage.getters.workflowMenu().click();
41+
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
42+
43+
cy.get('body').click(0, 0);
44+
45+
workflowPage.getters.errorToast().should('not.exist');
46+
});
47+
48+
it('canceling modal should not show error toast', () => {
49+
workflowPage.actions.visit(true);
50+
51+
workflowPage.getters.workflowMenu().click();
52+
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
53+
messageBox.getters.cancel().click();
54+
55+
workflowPage.getters.errorToast().should('not.exist');
56+
});
57+
});
58+
59+
describe('From File', () => {
60+
it('should import workflow', () => {
61+
workflowPage.actions.visit(true);
62+
63+
workflowPage.getters.workflowMenu().click();
64+
workflowPage.getters.workflowMenuItemImportFromFile().click();
65+
workflowPage.getters
66+
.workflowImportInput()
67+
.selectFile('cypress/fixtures/Test_workflow-actions_paste-data.json', { force: true });
68+
cy.waitForLoad(false);
69+
workflowPage.actions.zoomToFit();
70+
workflowPage.getters.canvasNodes().should('have.length', 5);
71+
workflowPage.getters.nodeConnections().should('have.length', 5);
72+
});
73+
});
74+
});

cypress/e2e/7-workflow-actions.cy.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import { getVisibleSelect } from '../utils';
1313
import { WorkflowExecutionsTab } from '../pages';
1414

1515
const NEW_WORKFLOW_NAME = 'Something else';
16-
const IMPORT_WORKFLOW_URL =
17-
'https://gist.githubusercontent.com/OlegIvaniv/010bd3f45c8a94f8eb7012e663a8b671/raw/3afea1aec15573cc168d9af7e79395bd76082906/test-workflow.json';
1816
const DUPLICATE_WORKFLOW_NAME = 'Duplicated workflow';
1917
const DUPLICATE_WORKFLOW_TAG = 'Duplicate';
2018

@@ -146,30 +144,6 @@ describe('Workflow Actions', () => {
146144
});
147145
});
148146

149-
it('should import workflow from url', () => {
150-
WorkflowPage.getters.workflowMenu().should('be.visible');
151-
WorkflowPage.getters.workflowMenu().click();
152-
WorkflowPage.getters.workflowMenuItemImportFromURLItem().should('be.visible');
153-
WorkflowPage.getters.workflowMenuItemImportFromURLItem().click();
154-
cy.get('.el-message-box').should('be.visible');
155-
cy.get('.el-message-box').find('input').type(IMPORT_WORKFLOW_URL);
156-
cy.get('body').type('{enter}');
157-
cy.waitForLoad(false);
158-
WorkflowPage.actions.zoomToFit();
159-
WorkflowPage.getters.canvasNodes().should('have.length', 2);
160-
WorkflowPage.getters.nodeConnections().should('have.length', 1);
161-
});
162-
163-
it('should import workflow from file', () => {
164-
WorkflowPage.getters
165-
.workflowImportInput()
166-
.selectFile('cypress/fixtures/Test_workflow-actions_paste-data.json', { force: true });
167-
cy.waitForLoad(false);
168-
WorkflowPage.actions.zoomToFit();
169-
WorkflowPage.getters.canvasNodes().should('have.length', 5);
170-
WorkflowPage.getters.nodeConnections().should('have.length', 5);
171-
});
172-
173147
it('should update workflow settings', () => {
174148
cy.visit(WorkflowPages.url);
175149
WorkflowPages.getters.workflowCards().then((cards) => {

packages/editor-ui/src/components/MainHeader/WorkflowDetails.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,6 +587,10 @@ export default defineComponent({
587587
},
588588
)) as MessageBoxInputData;
589589
590+
if (promptResponse === 'cancel') {
591+
return;
592+
}
593+
590594
nodeViewEventBus.emit('importWorkflowUrl', { url: promptResponse.value });
591595
} catch (e) {}
592596
break;

0 commit comments

Comments
 (0)