mirror of
https://github.com/usebruno/bruno.git
synced 2026-07-09 06:55:03 +00:00
feat: bru.setNextRequest()
This commit is contained in:
@@ -357,7 +357,9 @@ const handler = async function (argv) {
|
||||
}
|
||||
}
|
||||
|
||||
for (const iter of bruJsons) {
|
||||
let currentRequestIndex = 0;
|
||||
while (currentRequestIndex < bruJsons.length) {
|
||||
const iter = bruJsons[currentRequestIndex];
|
||||
const { bruFilepath, bruJson } = iter;
|
||||
const result = await runSingleRequest(
|
||||
bruFilepath,
|
||||
@@ -370,6 +372,19 @@ const handler = async function (argv) {
|
||||
collectionRoot
|
||||
);
|
||||
|
||||
const nextRequestName = result?.nextRequestName;
|
||||
if (nextRequestName) {
|
||||
const nextRequestIdx = bruJsons.findIndex((iter) => iter.bruJson.name === nextRequestName);
|
||||
if (nextRequestIdx > 0) {
|
||||
currentRequestIndex = nextRequestIdx;
|
||||
} else {
|
||||
console.error("Could not find request with name '" + nextRequestName + "'");
|
||||
currentRequestIndex++;
|
||||
}
|
||||
} else {
|
||||
currentRequestIndex++;
|
||||
}
|
||||
|
||||
results.push(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ const runSingleRequest = async function (
|
||||
) {
|
||||
try {
|
||||
let request;
|
||||
let nextRequestName;
|
||||
|
||||
request = prepareRequest(bruJson.request, collectionRoot);
|
||||
|
||||
@@ -66,7 +67,7 @@ const runSingleRequest = async function (
|
||||
]).join(os.EOL);
|
||||
if (requestScriptFile && requestScriptFile.length) {
|
||||
const scriptRuntime = new ScriptRuntime();
|
||||
await scriptRuntime.runRequestScript(
|
||||
const result = await scriptRuntime.runRequestScript(
|
||||
decomment(requestScriptFile),
|
||||
request,
|
||||
envVariables,
|
||||
@@ -76,6 +77,9 @@ const runSingleRequest = async function (
|
||||
processEnvVars,
|
||||
scriptingConfig
|
||||
);
|
||||
if (result?.nextRequestName) {
|
||||
nextRequestName = result.nextRequestName;
|
||||
}
|
||||
}
|
||||
|
||||
// interpolate variables inside request
|
||||
@@ -187,7 +191,8 @@ const runSingleRequest = async function (
|
||||
},
|
||||
error: err.message,
|
||||
assertionResults: [],
|
||||
testResults: []
|
||||
testResults: [],
|
||||
nextRequestName: nextRequestName
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -219,7 +224,7 @@ const runSingleRequest = async function (
|
||||
]).join(os.EOL);
|
||||
if (responseScriptFile && responseScriptFile.length) {
|
||||
const scriptRuntime = new ScriptRuntime();
|
||||
await scriptRuntime.runResponseScript(
|
||||
const result = await scriptRuntime.runResponseScript(
|
||||
decomment(responseScriptFile),
|
||||
request,
|
||||
response,
|
||||
@@ -230,6 +235,9 @@ const runSingleRequest = async function (
|
||||
processEnvVars,
|
||||
scriptingConfig
|
||||
);
|
||||
if (result?.nextRequestName) {
|
||||
nextRequestName = result.nextRequestName;
|
||||
}
|
||||
}
|
||||
|
||||
// run assertions
|
||||
@@ -301,7 +309,8 @@ const runSingleRequest = async function (
|
||||
},
|
||||
error: null,
|
||||
assertionResults,
|
||||
testResults
|
||||
testResults,
|
||||
nextRequestName: nextRequestName
|
||||
};
|
||||
} catch (err) {
|
||||
console.log(chalk.red(stripExtension(filename)) + chalk.dim(` (${err.message})`));
|
||||
|
||||
Reference in New Issue
Block a user