From b6da0b2113b5529ada1d61e88e111efa0fa04d07 Mon Sep 17 00:00:00 2001 From: Anoop M D Date: Wed, 18 Oct 2023 10:54:51 +0530 Subject: [PATCH] chore: pr #632 polish --- packages/bruno-js/src/interpolate-string.js | 18 +++++++++--------- .../bruno-js/src/runtime/assert-runtime.js | 14 ++++++++++---- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/bruno-js/src/interpolate-string.js b/packages/bruno-js/src/interpolate-string.js index 33701dd0b..22910c1a3 100644 --- a/packages/bruno-js/src/interpolate-string.js +++ b/packages/bruno-js/src/interpolate-string.js @@ -17,7 +17,7 @@ const interpolateEnvVars = (str, processEnvVars) => { }); }; -const interpolateString = (str, { envVars, collectionVariables, processEnvVars }) => { +const interpolateString = (str, { envVariables, collectionVariables, processEnvVars }) => { if (!str || !str.length || typeof str !== 'string') { return str; } @@ -25,20 +25,20 @@ const interpolateString = (str, { envVars, collectionVariables, processEnvVars } processEnvVars = processEnvVars || {}; collectionVariables = collectionVariables || {}; - // we clone envVars because we don't want to modify the original object - envVars = envVars ? cloneDeep(envVars) : {}; + // we clone envVariables because we don't want to modify the original object + envVariables = envVariables ? cloneDeep(envVariables) : {}; - // envVars can inturn have values as {{process.env.VAR_NAME}} - // so we need to interpolate envVars first with processEnvVars - forOwn(envVars, (value, key) => { - envVars[key] = interpolateEnvVars(value, processEnvVars); + // envVariables can inturn have values as {{process.env.VAR_NAME}} + // so we need to interpolate envVariables first with processEnvVars + forOwn(envVariables, (value, key) => { + envVariables[key] = interpolateEnvVars(value, processEnvVars); }); const template = Handlebars.compile(str, { noEscape: true }); - // collectionVariables take precedence over envVars + // collectionVariables take precedence over envVariables const combinedVars = { - ...envVars, + ...envVariables, ...collectionVariables, process: { env: { diff --git a/packages/bruno-js/src/runtime/assert-runtime.js b/packages/bruno-js/src/runtime/assert-runtime.js index fa3827097..da885ab59 100644 --- a/packages/bruno-js/src/runtime/assert-runtime.js +++ b/packages/bruno-js/src/runtime/assert-runtime.js @@ -162,6 +162,12 @@ const evaluateRhsOperand = (rhsOperand, operator, context) => { return; } + const interpolationContext = { + collectionVariables: context.bru.collectionVariables, + envVariables: context.bru.envVariables, + processEnvVars: context.bu.processEnvVars + }; + // gracefully allow both a,b as well as [a, b] if (operator === 'in' || operator === 'notIn') { if (rhsOperand.startsWith('[') && rhsOperand.endsWith(']')) { @@ -170,13 +176,13 @@ const evaluateRhsOperand = (rhsOperand, operator, context) => { return rhsOperand .split(',') - .map((v) => evaluateJsTemplateLiteral(interpolateString(v.trim(), context.bru), context)); + .map((v) => evaluateJsTemplateLiteral(interpolateString(v.trim(), interpolationContext), context)); } if (operator === 'between') { const [lhs, rhs] = rhsOperand .split(',') - .map((v) => evaluateJsTemplateLiteral(interpolateString(v.trim(), context.bru), context)); + .map((v) => evaluateJsTemplateLiteral(interpolateString(v.trim(), interpolationContext), context)); return [lhs, rhs]; } @@ -186,10 +192,10 @@ const evaluateRhsOperand = (rhsOperand, operator, context) => { rhsOperand = rhsOperand.substring(1, rhsOperand.length - 1); } - return interpolateString(rhsOperand, context.bru); + return interpolateString(rhsOperand, interpolationContext); } - return evaluateJsTemplateLiteral(interpolateString(rhsOperand, context.bru), context); + return evaluateJsTemplateLiteral(interpolateString(rhsOperand, interpolationContext), context); }; class AssertRuntime {