mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-11 09:51:30 +00:00
refactor: update Bru constructor to accept a single options obj for improved readability (#7562)
* refactor: update Bru constructor to accept a single options object for improved readability - Changed the Bru class constructor to accept a single options object instead of multiple parameters, enhancing code clarity and maintainability. - Updated all instances of Bru instantiation across the codebase to align with the new constructor format. * docs: enhance Bru constructor documentation with additional certs and proxy configuration options - Updated the documentation for the Bru class constructor to include new parameters related to certs and proxy configuration, improving clarity for users on available options. - Added descriptions for collectionPath, options, clientCertificates, collectionLevelProxy, and systemProxyConfig to provide comprehensive guidance on their usage. * docs: refine Bru constructor documentation for clarity and default values - Updated the constructor documentation for the Bru class to enhance clarity by consolidating parameter descriptions into a single options object format. - Added default values for optional parameters, improving guidance for users on expected input and usage.
This commit is contained in:
@@ -8,26 +8,41 @@ const variableNameRegex = /^[\w-.]*$/;
|
||||
|
||||
class Bru {
|
||||
/**
|
||||
* @param {string} runtime - The runtime environment ('quickjs' or 'nodevm')
|
||||
* @param {object} envVariables - Environment variables
|
||||
* @param {object} runtimeVariables - Runtime variables
|
||||
* @param {object} processEnvVars - Process environment variables
|
||||
* @param {string} collectionPath - Path to the collection
|
||||
* @param {object} collectionVariables - Collection-level variables
|
||||
* @param {object} folderVariables - Folder-level variables
|
||||
* @param {object} requestVariables - Request-level variables
|
||||
* @param {object} globalEnvironmentVariables - Global environment variables
|
||||
* @param {object} oauth2CredentialVariables - OAuth2 credential variables
|
||||
* @param {string} collectionName - Name of the collection
|
||||
* @param {object} promptVariables - Prompt variables
|
||||
* @param {object} certsAndProxyConfig - Configuration for bru.sendRequest (proxy, certs, TLS)
|
||||
* @param {string} certsAndProxyConfig.collectionPath - Path to the collection
|
||||
* @param {object} certsAndProxyConfig.options - TLS and proxy options
|
||||
* @param {object} [certsAndProxyConfig.clientCertificates] - Client certificate configuration
|
||||
* @param {object} [certsAndProxyConfig.collectionLevelProxy] - Collection-level proxy settings
|
||||
* @param {object} [certsAndProxyConfig.systemProxyConfig] - System proxy configuration
|
||||
* @param {object} options - Single options object (destructured)
|
||||
* @property {string} options.runtime - The runtime environment ('quickjs' or 'nodevm')
|
||||
* @property {object} [options.envVariables={}] - Environment variables
|
||||
* @property {object} [options.runtimeVariables={}] - Runtime variables
|
||||
* @property {object} [options.processEnvVars={}] - Process environment variables (deep cloned)
|
||||
* @property {string} [options.collectionPath] - Path to the collection
|
||||
* @property {object} [options.collectionVariables={}] - Collection-level variables
|
||||
* @property {object} [options.folderVariables={}] - Folder-level variables
|
||||
* @property {object} [options.requestVariables={}] - Request-level variables
|
||||
* @property {object} [options.globalEnvironmentVariables={}] - Global environment variables
|
||||
* @property {object} [options.oauth2CredentialVariables={}] - OAuth2 credential variables
|
||||
* @property {string} [options.collectionName] - Name of the collection
|
||||
* @property {object} [options.promptVariables={}] - Prompt variables
|
||||
* @property {object} [options.certsAndProxyConfig] - Configuration for bru.sendRequest (proxy, certs, TLS)
|
||||
* @property {string} [options.certsAndProxyConfig.collectionPath] - Path to the collection
|
||||
* @property {object} [options.certsAndProxyConfig.options] - TLS and proxy options
|
||||
* @property {object} [options.certsAndProxyConfig.clientCertificates] - Client certificate configuration
|
||||
* @property {object} [options.certsAndProxyConfig.collectionLevelProxy] - Collection-level proxy settings
|
||||
* @property {object} [options.certsAndProxyConfig.systemProxyConfig] - System proxy configuration
|
||||
*/
|
||||
constructor(runtime, envVariables, runtimeVariables, processEnvVars, collectionPath, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables, collectionName, promptVariables, certsAndProxyConfig) {
|
||||
constructor({
|
||||
runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
collectionPath,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
oauth2CredentialVariables,
|
||||
collectionName,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
}) {
|
||||
this.envVariables = envVariables || {};
|
||||
this.runtimeVariables = runtimeVariables || {};
|
||||
this.promptVariables = promptVariables || {};
|
||||
|
||||
@@ -262,21 +262,18 @@ class AssertRuntime {
|
||||
|
||||
const promptVariables = request?.promptVariables || {};
|
||||
const certsAndProxyConfig = request?.certsAndProxyConfig;
|
||||
const bru = new Bru(
|
||||
this.runtime,
|
||||
const bru = new Bru({
|
||||
runtime: this.runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
undefined,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
{},
|
||||
undefined,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
);
|
||||
});
|
||||
const req = new BrunoRequest(request);
|
||||
const res = createResponseParser(response);
|
||||
|
||||
|
||||
@@ -36,7 +36,21 @@ class ScriptRuntime {
|
||||
const assertionResults = request?.assertionResults || [];
|
||||
const certsAndProxyConfig = request?.certsAndProxyConfig;
|
||||
const scriptPath = request?.pathname;
|
||||
const bru = new Bru(this.runtime, envVariables, runtimeVariables, processEnvVars, collectionPath, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables, collectionName, promptVariables, certsAndProxyConfig);
|
||||
const bru = new Bru({
|
||||
runtime: this.runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
collectionPath,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
oauth2CredentialVariables,
|
||||
collectionName,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
});
|
||||
const req = new BrunoRequest(request);
|
||||
|
||||
// extend bru with result getter methods
|
||||
@@ -155,7 +169,21 @@ class ScriptRuntime {
|
||||
const assertionResults = request?.assertionResults || {};
|
||||
const certsAndProxyConfig = request?.certsAndProxyConfig;
|
||||
const scriptPath = request?.pathname;
|
||||
const bru = new Bru(this.runtime, envVariables, runtimeVariables, processEnvVars, collectionPath, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables, collectionName, promptVariables, certsAndProxyConfig);
|
||||
const bru = new Bru({
|
||||
runtime: this.runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
collectionPath,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
oauth2CredentialVariables,
|
||||
collectionName,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
});
|
||||
const req = new BrunoRequest(request);
|
||||
const res = new BrunoResponse(response);
|
||||
|
||||
|
||||
@@ -36,7 +36,21 @@ class TestRuntime {
|
||||
const assertionResults = request?.assertionResults || [];
|
||||
const certsAndProxyConfig = request?.certsAndProxyConfig;
|
||||
const scriptPath = request?.pathname;
|
||||
const bru = new Bru(this.runtime, envVariables, runtimeVariables, processEnvVars, collectionPath, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables, collectionName, promptVariables, certsAndProxyConfig);
|
||||
const bru = new Bru({
|
||||
runtime: this.runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
collectionPath,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
oauth2CredentialVariables,
|
||||
collectionName,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
});
|
||||
const req = new BrunoRequest(request);
|
||||
const res = new BrunoResponse(response);
|
||||
|
||||
|
||||
@@ -37,7 +37,19 @@ class VarsRuntime {
|
||||
|
||||
const promptVariables = request?.promptVariables || {};
|
||||
const certsAndProxyConfig = request?.certsAndProxyConfig;
|
||||
const bru = new Bru(this.runtime, envVariables, runtimeVariables, processEnvVars, undefined, collectionVariables, folderVariables, requestVariables, globalEnvironmentVariables, oauth2CredentialVariables, undefined, promptVariables, certsAndProxyConfig);
|
||||
const bru = new Bru({
|
||||
runtime: this.runtime,
|
||||
envVariables,
|
||||
runtimeVariables,
|
||||
processEnvVars,
|
||||
collectionVariables,
|
||||
folderVariables,
|
||||
requestVariables,
|
||||
globalEnvironmentVariables,
|
||||
oauth2CredentialVariables,
|
||||
promptVariables,
|
||||
certsAndProxyConfig
|
||||
});
|
||||
const req = new BrunoRequest(request);
|
||||
const res = createResponseParser(response);
|
||||
|
||||
|
||||
@@ -2,23 +2,14 @@ const Bru = require('../src/bru');
|
||||
|
||||
describe('Bru.setEnvVar', () => {
|
||||
const makeBru = () =>
|
||||
new Bru(
|
||||
/* runtime */ 'quickjs',
|
||||
/* envVariables */ {},
|
||||
/* runtimeVariables */ {},
|
||||
/* processEnvVars */ {},
|
||||
/* collectionPath */ '/',
|
||||
/* historyLogger */ undefined,
|
||||
/* setVisualizations */ undefined,
|
||||
/* secretVariables */ {},
|
||||
/* collectionVariables */ {},
|
||||
/* folderVariables */ {},
|
||||
/* requestVariables */ {},
|
||||
/* globalEnvironmentVariables */ {},
|
||||
/* oauth2CredentialVariables */ {},
|
||||
/* iterationDetails */ {},
|
||||
/* collectionName */ 'Test'
|
||||
);
|
||||
new Bru({
|
||||
runtime: 'quickjs',
|
||||
envVariables: {},
|
||||
runtimeVariables: {},
|
||||
processEnvVars: {},
|
||||
collectionPath: '/',
|
||||
collectionName: 'Test'
|
||||
});
|
||||
|
||||
test('updates envVariables and does not mark persistent when persist=false', () => {
|
||||
const bru = makeBru();
|
||||
|
||||
Reference in New Issue
Block a user