From 18b62b41aa3de2552e43660c38053c31a4b81ec9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 08:56:16 +0200 Subject: [PATCH] [Backport 7.x] Fix integration test (#1336) Co-authored-by: Tomas Della Vedova --- test/integration/test-runner.js | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/test/integration/test-runner.js b/test/integration/test-runner.js index 4ba69b653..400946672 100644 --- a/test/integration/test-runner.js +++ b/test/integration/test-runner.js @@ -279,20 +279,26 @@ function build (opts = {}) { // eg: 'Basic ${auth}' we search the stahed value 'auth' // and the resulting value will be 'Basic valueOfAuth' if (typeof val === 'string' && val.includes('${')) { - const start = val.indexOf('${') - const end = val.indexOf('}', val.indexOf('${')) - const stashedKey = val.slice(start + 2, end) - const stashed = stash.get(stashedKey) - obj[key] = val.slice(0, start) + stashed + val.slice(end + 1) + while (obj[key].includes('${')) { + const val = obj[key] + const start = val.indexOf('${') + const end = val.indexOf('}', val.indexOf('${')) + const stashedKey = val.slice(start + 2, end) + const stashed = stash.get(stashedKey) + obj[key] = val.slice(0, start) + stashed + val.slice(end + 1) + } continue } // handle json strings, eg: '{"hello":"$world"}' if (typeof val === 'string' && val.includes('"$')) { - const start = val.indexOf('"$') - const end = val.indexOf('"', start + 1) - const stashedKey = val.slice(start + 2, end) - const stashed = '"' + stash.get(stashedKey) + '"' - obj[key] = val.slice(0, start) + stashed + val.slice(end + 1) + while (obj[key].includes('"$')) { + const val = obj[key] + const start = val.indexOf('"$') + const end = val.indexOf('"', start + 1) + const stashedKey = val.slice(start + 2, end) + const stashed = '"' + stash.get(stashedKey) + '"' + obj[key] = val.slice(0, start) + stashed + val.slice(end + 1) + } continue } // if the key value is a string, and the string includes '$'