diff --git a/packages/editor-ui/src/components/ParameterInputHint.vue b/packages/editor-ui/src/components/ParameterInputHint.vue
index 0acafdd721dc1..8a88ba4793a87 100644
--- a/packages/editor-ui/src/components/ParameterInputHint.vue
+++ b/packages/editor-ui/src/components/ParameterInputHint.vue
@@ -7,7 +7,7 @@
[$style.highlight]: highlight,
}"
>
-
+
{
+ test('should resolve expression', async () => {
+ const { getByTestId } = renderComponent(ParameterInputWrapper, {
+ pinia: createTestingPinia({
+ initialState: {
+ ndv: {
+ activeNodeName: 'testNode',
+ input: { nodeName: 'inputNode' },
+ },
+ },
+ }),
+ props: {
+ parameter: {
+ name: 'test',
+ type: 'string',
+ },
+ path: 'params.test',
+ modelValue: '={{ $secrets.infisical.password }}',
+ isForCredential: true,
+ },
+ global: {
+ mocks: {
+ $workflowHelpers: {
+ resolveExpression: vi.fn(() => 'topSecret'),
+ },
+ $ndvStore: {
+ activeNode: vi.fn(() => ({ test: 'test' })),
+ },
+ },
+ },
+ });
+
+ expect(getByTestId('parameter-input-hint')).toHaveTextContent('[ERROR: ]');
+ });
+});
diff --git a/packages/editor-ui/src/components/ParameterInputWrapper.vue b/packages/editor-ui/src/components/ParameterInputWrapper.vue
index aebdcf229918d..7165bccf13c29 100644
--- a/packages/editor-ui/src/components/ParameterInputWrapper.vue
+++ b/packages/editor-ui/src/components/ParameterInputWrapper.vue
@@ -177,6 +177,8 @@ const evaluatedExpression = computed>(() => {
};
}
+ if (props.isForCredential) opts.additionalKeys = resolvedAdditionalExpressionData.value;
+
return { ok: true, result: workflowHelpers.resolveExpression(value, undefined, opts) };
} catch (error) {
return { ok: false, error };
diff --git a/packages/editor-ui/src/composables/useExpressionEditor.ts b/packages/editor-ui/src/composables/useExpressionEditor.ts
index da66887319926..416080a8ad189 100644
--- a/packages/editor-ui/src/composables/useExpressionEditor.ts
+++ b/packages/editor-ui/src/composables/useExpressionEditor.ts
@@ -293,14 +293,13 @@ export const useExpressionEditor = ({
// e.g. credential modal
result.resolved = Expression.resolveWithoutWorkflow(resolvable, toValue(additionalData));
} else {
- let opts;
+ let opts: Record = { additionalKeys: toValue(additionalData) };
if (ndvStore.isInputParentOfActiveNode) {
opts = {
targetItem: target ?? undefined,
inputNodeName: ndvStore.ndvInputNodeName,
inputRunIndex: ndvStore.ndvInputRunIndex,
inputBranchIndex: ndvStore.ndvInputBranchIndex,
- additionalKeys: toValue(additionalData),
};
}
result.resolved = workflowHelpers.resolveExpression('=' + resolvable, undefined, opts);