From 8183ce03c51e7f8789440f3190870c4c3d1c263a Mon Sep 17 00:00:00 2001 From: Martin Hoecker Date: Wed, 1 Nov 2023 23:41:37 +0100 Subject: [PATCH] feat: bru.setNextRequest(null) breaks execution without error --- packages/bruno-cli/src/commands/run.js | 10 +++++++--- packages/bruno-cli/src/runner/run-single-request.js | 4 ++-- packages/bruno-electron/src/ipc/network/index.js | 9 ++++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packages/bruno-cli/src/commands/run.js b/packages/bruno-cli/src/commands/run.js index 5e7b8e55..d1eea59a 100644 --- a/packages/bruno-cli/src/commands/run.js +++ b/packages/bruno-cli/src/commands/run.js @@ -371,13 +371,19 @@ const handler = async function (argv) { collectionRoot ); + results.push(result); + + // determine next request const nextRequestName = result?.nextRequestName; - if (nextRequestName) { + if (nextRequestName !== undefined) { nJumps++; if (nJumps > 10000) { console.error(chalk.red(`Too many jumps, possible infinite loop`)); process.exit(1); } + if (nextRequestName === null) { + break; + } const nextRequestIdx = bruJsons.findIndex((iter) => iter.bruJson.name === nextRequestName); if (nextRequestIdx >= 0) { currentRequestIndex = nextRequestIdx; @@ -388,8 +394,6 @@ const handler = async function (argv) { } else { currentRequestIndex++; } - - results.push(result); } const summary = printRunSummary(results); diff --git a/packages/bruno-cli/src/runner/run-single-request.js b/packages/bruno-cli/src/runner/run-single-request.js index cc0012fc..8a9cc048 100644 --- a/packages/bruno-cli/src/runner/run-single-request.js +++ b/packages/bruno-cli/src/runner/run-single-request.js @@ -77,7 +77,7 @@ const runSingleRequest = async function ( processEnvVars, scriptingConfig ); - if (result?.nextRequestName) { + if (result?.nextRequestName !== undefined) { nextRequestName = result.nextRequestName; } } @@ -252,7 +252,7 @@ const runSingleRequest = async function ( processEnvVars, scriptingConfig ); - if (result?.nextRequestName) { + if (result?.nextRequestName !== undefined) { nextRequestName = result.nextRequestName; } } diff --git a/packages/bruno-electron/src/ipc/network/index.js b/packages/bruno-electron/src/ipc/network/index.js index 3a6170ab..1536b8c8 100644 --- a/packages/bruno-electron/src/ipc/network/index.js +++ b/packages/bruno-electron/src/ipc/network/index.js @@ -710,7 +710,7 @@ const registerNetworkIpc = (mainWindow) => { scriptingConfig ); - if (preRequestScriptResult?.nextRequestName) { + if (preRequestScriptResult?.nextRequestName !== undefined) { nextRequestName = preRequestScriptResult.nextRequestName; } @@ -802,7 +802,7 @@ const registerNetworkIpc = (mainWindow) => { scriptingConfig ); - if (postRequestScriptResult?.nextRequestName) { + if (postRequestScriptResult?.nextRequestName !== undefined) { nextRequestName = postRequestScriptResult.nextRequestName; } @@ -866,11 +866,14 @@ const registerNetworkIpc = (mainWindow) => { ...eventData }); } - if (nextRequestName) { + if (nextRequestName !== undefined) { nJumps++; if (nJumps > 10000) { throw new Error('Too many jumps, possible infinite loop'); } + if (nextRequestName === null) { + break; + } const nextRequestIdx = folderRequests.findIndex((request) => request.name === nextRequestName); if (nextRequestIdx >= 0) { currentRequestIndex = nextRequestIdx;