From 85780eade57f30e6870c314fa465d523e3646005 Mon Sep 17 00:00:00 2001 From: Elias Meire Date: Fri, 19 Apr 2024 10:07:00 +0200 Subject: [PATCH] fix(editor): Fix expression preview when previous node is selected (#9140) --- cypress/e2e/14-mapping.cy.ts | 27 +++++++++++++++++++ .../AssignmentCollection/Assignment.vue | 18 ++++++++----- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/cypress/e2e/14-mapping.cy.ts b/cypress/e2e/14-mapping.cy.ts index 4029336c11f39..bcfeb71ec70a4 100644 --- a/cypress/e2e/14-mapping.cy.ts +++ b/cypress/e2e/14-mapping.cy.ts @@ -276,6 +276,33 @@ describe('Data mapping', () => { ndv.actions.validateExpressionPreview('value', '0 [object Object]'); }); + it('renders expression preview when a previous node is selected', () => { + cy.fixture('Test_workflow_3.json').then((data) => { + cy.get('body').paste(JSON.stringify(data)); + }); + + workflowPage.actions.openNode('Set'); + ndv.actions.typeIntoParameterInput('value', 'test_value'); + ndv.actions.typeIntoParameterInput('name', '{selectall}test_name'); + ndv.actions.close(); + + workflowPage.actions.openNode('Set1'); + ndv.actions.executePrevious(); + ndv.getters.executingLoader().should('not.exist'); + ndv.getters.inputDataContainer().should('exist'); + ndv.getters + .inputDataContainer() + .should('exist') + .find('span') + .contains('test_name') + .realMouseDown(); + ndv.actions.mapToParameter('value'); + + ndv.actions.validateExpressionPreview('value', 'test_value'); + ndv.actions.selectInputNode(SCHEDULE_TRIGGER_NODE_NAME); + ndv.actions.validateExpressionPreview('value', 'test_value'); + }); + it('shows you can drop to inputs, including booleans', () => { cy.fixture('Test_workflow_3.json').then((data) => { cy.get('body').paste(JSON.stringify(data)); diff --git a/packages/editor-ui/src/components/AssignmentCollection/Assignment.vue b/packages/editor-ui/src/components/AssignmentCollection/Assignment.vue index 816218c27fb17..c038ae07abbe5 100644 --- a/packages/editor-ui/src/components/AssignmentCollection/Assignment.vue +++ b/packages/editor-ui/src/components/AssignmentCollection/Assignment.vue @@ -83,12 +83,18 @@ const hint = computed(() => { let result: Result; try { - const resolvedValue = resolveExpression(value, undefined, { - targetItem: ndvStore.hoveringItem ?? undefined, - inputNodeName: ndvStore.ndvInputNodeName, - inputRunIndex: ndvStore.ndvInputRunIndex, - inputBranchIndex: ndvStore.ndvInputBranchIndex, - }) as unknown; + const resolvedValue = resolveExpression( + value, + undefined, + ndvStore.isInputParentOfActiveNode + ? { + targetItem: ndvStore.hoveringItem ?? undefined, + inputNodeName: ndvStore.ndvInputNodeName, + inputRunIndex: ndvStore.ndvInputRunIndex, + inputBranchIndex: ndvStore.ndvInputBranchIndex, + } + : {}, + ) as unknown; result = { ok: true, result: resolvedValue }; } catch (error) {