feat: add support for prompt variables in the bruno app

This commit is contained in:
Bobby Bonestell
2025-10-14 19:39:13 +05:30
committed by Bijin Bruno
parent 2d2a17c90f
commit d28f2f32e9
15 changed files with 321 additions and 9 deletions

View File

@@ -25,7 +25,7 @@ const { NtlmClient } = require('axios-ntlm');
const { addDigestInterceptor } = require('@usebruno/requests');
const { getCACertificates } = require('@usebruno/requests');
const { getOAuth2Token } = require('../utils/oauth2');
const { encodeUrl, buildFormUrlEncodedPayload } = require('@usebruno/common').utils;
const { encodeUrl, buildFormUrlEncodedPayload, extractPromptVariables } = require('@usebruno/common').utils;
const onConsoleLog = (type, args) => {
console[type](...args);
@@ -74,6 +74,38 @@ const runSingleRequest = async function (
request = await prepareRequest(item, collection);
// Detect prompt variables before proceeding
const promptVars = extractPromptVariables(request);
if (promptVars.length > 0) {
const errorMsg = 'Prompt variables detected in request. CLI execution is not supported for requests with prompt variables.';
console.log(chalk.red(stripExtension(relativeItemPathname)) + chalk.dim(` (${errorMsg})`));
return {
test: {
filename: relativeItemPathname
},
request: {
method: request.method,
url: request.url,
headers: request.headers,
data: request.data
},
response: {
status: 'skipped',
statusText: errorMsg,
data: null,
responseTime: 0
},
error: null,
status: 'skipped',
skipped: true,
assertionResults: [],
testResults: [],
preRequestTestResults: [],
postResponseTestResults: [],
shouldStopRunnerExecution
};
}
request.__bruno__executionMode = 'cli';
const scriptingConfig = get(brunoConfig, 'scripts', {});