mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-19 11:01:15 +00:00
fix(editor): Prevent error from showing-up when duplicating unsaved workflow (#5833)
* fix(editor): Prevent error from showing-up when duplicating unsaved workflow * Add unsaved workflow duplicate test
This commit is contained in:
@@ -190,14 +190,8 @@ describe('Workflow Actions', () => {
|
|||||||
cy.url().should('include', '/workflow/new');
|
cy.url().should('include', '/workflow/new');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should duplicate workflow', () => {
|
describe('duplicate workflow', () => {
|
||||||
// Stub window.open so new tab is not getting opened
|
function duplicateWorkflow() {
|
||||||
cy.window().then((win) => {
|
|
||||||
cy.stub(win, 'open').as('open');
|
|
||||||
});
|
|
||||||
|
|
||||||
WorkflowPage.actions.addNodeToCanvas(MANUAL_TRIGGER_NODE_NAME);
|
|
||||||
WorkflowPage.actions.saveWorkflowOnButtonClick();
|
|
||||||
WorkflowPage.getters.workflowMenu().should('be.visible');
|
WorkflowPage.getters.workflowMenu().should('be.visible');
|
||||||
WorkflowPage.getters.workflowMenu().click();
|
WorkflowPage.getters.workflowMenu().click();
|
||||||
WorkflowPage.getters.workflowMenuItemDuplicate().click();
|
WorkflowPage.getters.workflowMenuItemDuplicate().click();
|
||||||
@@ -222,5 +216,22 @@ describe('Workflow Actions', () => {
|
|||||||
.should('be.visible');
|
.should('be.visible');
|
||||||
WorkflowPage.getters.duplicateWorkflowModal().find('button').contains('Duplicate').click();
|
WorkflowPage.getters.duplicateWorkflowModal().find('button').contains('Duplicate').click();
|
||||||
WorkflowPage.getters.errorToast().should('not.exist');
|
WorkflowPage.getters.errorToast().should('not.exist');
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
// Stub window.open so new tab is not getting opened
|
||||||
|
cy.window().then((win) => {
|
||||||
|
cy.stub(win, 'open').as('open');
|
||||||
|
});
|
||||||
|
WorkflowPage.actions.addNodeToCanvas(MANUAL_TRIGGER_NODE_NAME);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should duplicate unsaved workflow', () => {
|
||||||
|
duplicateWorkflow();
|
||||||
|
});
|
||||||
|
it('should duplicate saved workflow', () => {
|
||||||
|
WorkflowPage.actions.saveWorkflowOnButtonClick();
|
||||||
|
duplicateWorkflow();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -89,10 +89,18 @@ export default mixins(showMessage, workflowHelpers, restApi).extend({
|
|||||||
computed: {
|
computed: {
|
||||||
...mapStores(useUsersStore, useSettingsStore, useWorkflowsStore),
|
...mapStores(useUsersStore, useSettingsStore, useWorkflowsStore),
|
||||||
workflowPermissions(): IPermissions {
|
workflowPermissions(): IPermissions {
|
||||||
return getWorkflowPermissions(
|
const isEmptyWorkflow = this.data.id === PLACEHOLDER_EMPTY_WORKFLOW_ID;
|
||||||
this.usersStore.currentUser,
|
const isCurrentWorkflowEmpty =
|
||||||
this.workflowsStore.getWorkflowById(this.data.id),
|
this.workflowsStore.workflow.id === PLACEHOLDER_EMPTY_WORKFLOW_ID;
|
||||||
);
|
|
||||||
|
// If the workflow to be duplicated is empty and the current workflow is also empty
|
||||||
|
// we need to use the current workflow to get the permissions
|
||||||
|
const currentWorkflow =
|
||||||
|
isEmptyWorkflow && isCurrentWorkflowEmpty
|
||||||
|
? this.workflowsStore.workflow
|
||||||
|
: this.workflowsStore.getWorkflowById(this.data.id);
|
||||||
|
|
||||||
|
return getWorkflowPermissions(this.usersStore.currentUser, currentWorkflow);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|||||||
Reference in New Issue
Block a user