fix(editor): Close Workflow URL Import Modal after import (#15177)

Co-authored-by: Milorad FIlipović <milorad@n8n.io>
This commit is contained in:
Nikhil Kuriakose
2025-05-09 14:06:41 +02:00
committed by GitHub
parent 33030eae7d
commit d14fb4dde3
9 changed files with 214 additions and 30 deletions

View File

@@ -6,12 +6,10 @@ import {
MANUAL_TRIGGER_NODE_NAME,
MANUAL_TRIGGER_NODE_DISPLAY_NAME,
} from '../constants';
import { MessageBox as MessageBoxClass } from '../pages/modals/message-box';
import { NDV } from '../pages/ndv';
import { WorkflowPage as WorkflowPageClass } from '../pages/workflow';
const WorkflowPage = new WorkflowPageClass();
const messageBox = new MessageBoxClass();
const ndv = new NDV();
describe('Undo/Redo', () => {
@@ -256,11 +254,11 @@ describe('Undo/Redo', () => {
WorkflowPage.getters.workflowMenuItemImportFromURLItem().should('be.visible');
WorkflowPage.getters.workflowMenuItemImportFromURLItem().click();
// Try while prompt is open
messageBox.getters.header().click();
WorkflowPage.getters.inputURLImportWorkflowFromURL().click();
WorkflowPage.actions.hitUndo();
WorkflowPage.getters.canvasNodes().should('have.have.length', 1);
// Close prompt and try again
messageBox.actions.cancel();
WorkflowPage.getters.cancelActionImportWorkflowFromURL().click();
WorkflowPage.actions.hitUndo();
WorkflowPage.getters.canvasNodes().should('have.have.length', 0);
});

View File

@@ -1,9 +1,7 @@
import { WorkflowPage } from '../pages';
import { MessageBox as MessageBoxClass } from '../pages/modals/message-box';
import { errorToast, successToast } from '../pages/notifications';
const workflowPage = new WorkflowPage();
const messageBox = new MessageBoxClass();
before(() => {
cy.fixture('Onboarding_workflow.json').then((data) => {
@@ -20,11 +18,13 @@ describe('Import workflow', () => {
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
messageBox.getters.modal().should('be.visible');
workflowPage.getters.inputURLImportWorkflowFromURL().should('be.visible');
messageBox.getters.content().type('https://fakepage.com/workflow.json');
workflowPage.getters
.inputURLImportWorkflowFromURL()
.type('https://fakepage.com/workflow.json');
messageBox.getters.confirm().click();
workflowPage.getters.confirmActionImportWorkflowFromURL().click();
workflowPage.actions.zoomToFit();
@@ -37,7 +37,6 @@ describe('Import workflow', () => {
it('clicking outside modal should not show error toast', () => {
workflowPage.actions.visit(true);
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
@@ -51,7 +50,7 @@ describe('Import workflow', () => {
workflowPage.getters.workflowMenu().click();
workflowPage.getters.workflowMenuItemImportFromURLItem().click();
messageBox.getters.cancel().click();
workflowPage.getters.cancelActionImportWorkflowFromURL().click();
errorToast().should('not.exist');
});

View File

@@ -219,6 +219,9 @@ export class WorkflowPage extends BasePage {
}
return parseFloat(element.css('top'));
},
inputURLImportWorkflowFromURL: () => cy.getByTestId('workflow-url-import-input'),
cancelActionImportWorkflowFromURL: () => cy.getByTestId('cancel-workflow-import-url-button'),
confirmActionImportWorkflowFromURL: () => cy.getByTestId('confirm-workflow-import-url-button'),
confirmModal: () => cy.get('div[role=dialog][aria-modal=true]'),
};