From 648c6f9315b16b885e04716e7e0035a73b358fb0 Mon Sep 17 00:00:00 2001 From: Csaba Tuncsik Date: Mon, 27 Jan 2025 12:32:03 +0100 Subject: [PATCH] fix(editor): Properly set active project in new canvas (#12810) --- cypress/e2e/39-projects.cy.ts | 61 ++++++++++++++++++++ packages/editor-ui/src/views/NodeView.v2.vue | 4 +- 2 files changed, 62 insertions(+), 3 deletions(-) diff --git a/cypress/e2e/39-projects.cy.ts b/cypress/e2e/39-projects.cy.ts index 04c72c4b2a..492cdde975 100644 --- a/cypress/e2e/39-projects.cy.ts +++ b/cypress/e2e/39-projects.cy.ts @@ -1,3 +1,5 @@ +import { setCredentialValues } from '../composables/modals/credential-modal'; +import { clickCreateNewCredential, selectResourceLocatorItem } from '../composables/ndv'; import * as projects from '../composables/projects'; import { INSTANCE_ADMIN, @@ -534,6 +536,65 @@ describe('Projects', { disableAutoLogin: true }, () => { workflowPage.getters.canvasNodeByName(NOTION_NODE_NAME).should('be.visible').dblclick(); ndv.getters.credentialInput().find('input').should('be.enabled'); }); + + it('should create sub-workflow and credential in the sub-workflow in the same project', () => { + cy.signinAsOwner(); + cy.visit(workflowsPage.url); + + projects.createProject('Dev'); + projects.getProjectTabWorkflows().click(); + workflowsPage.getters.newWorkflowButtonCard().click(); + workflowPage.actions.addNodeToCanvas(MANUAL_TRIGGER_NODE_NAME); + workflowPage.actions.saveWorkflowOnButtonClick(); + workflowPage.actions.addNodeToCanvas('Execute Workflow', true, true); + + cy.window().then((win) => { + cy.stub(win, 'open').callsFake((url) => { + cy.visit(url); + }); + }); + + selectResourceLocatorItem('workflowId', 0, 'Create a'); + + workflowPage.actions.addNodeToCanvas(NOTION_NODE_NAME, true, true); + clickCreateNewCredential(); + setCredentialValues({ + apiKey: 'abc123', + }); + ndv.actions.close(); + workflowPage.actions.saveWorkflowOnButtonClick(); + + projects.getMenuItems().last().click(); + workflowsPage.getters.workflowCards().should('have.length', 2); + + projects.getProjectTabCredentials().click(); + credentialsPage.getters.credentialCards().should('have.length', 1); + }); + + it('should create credential from workflow in the correct project after editor page refresh', () => { + cy.signinAsOwner(); + cy.visit(workflowsPage.url); + + projects.createProject('Dev'); + projects.getProjectTabWorkflows().click(); + workflowsPage.getters.newWorkflowButtonCard().click(); + workflowPage.actions.addNodeToCanvas(MANUAL_TRIGGER_NODE_NAME); + workflowPage.actions.saveWorkflowOnButtonClick(); + + cy.reload(); + + workflowPage.actions.addNodeToCanvas(NOTION_NODE_NAME, true, true); + clickCreateNewCredential(); + setCredentialValues({ + apiKey: 'abc123', + }); + ndv.actions.close(); + workflowPage.actions.saveWorkflowOnButtonClick(); + + projects.getMenuItems().last().click(); + projects.getProjectTabCredentials().click(); + credentialsPage.getters.credentialCards().should('have.length', 1); + }); }); it('should set and update project icon', () => { diff --git a/packages/editor-ui/src/views/NodeView.v2.vue b/packages/editor-ui/src/views/NodeView.v2.vue index 459812e946..537cd11591 100644 --- a/packages/editor-ui/src/views/NodeView.v2.vue +++ b/packages/editor-ui/src/views/NodeView.v2.vue @@ -396,9 +396,7 @@ async function initializeWorkspaceForExistingWorkflow(id: string) { trackOpenWorkflowFromOnboardingTemplate(); } - await projectsStore.setProjectNavActiveIdByWorkflowHomeProject( - editableWorkflow.value.homeProject, - ); + await projectsStore.setProjectNavActiveIdByWorkflowHomeProject(workflowData.homeProject); } catch (error) { toast.showError(error, i18n.baseText('openWorkflow.workflowNotFoundError'));