fluentrest-ts
Version:
A lightweight, fluent TypeScript API testing library inspired by Java's RestAssured. Built on top of Axios, JSONPath, and Joi for powerful request handling and response validation.
51 lines (50 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.configureDefaults = configureDefaults;
exports.getCurrentDefaults = getCurrentDefaults;
exports.getMergedDefaults = getMergedDefaults;
let globalDefaults;
//** Lazy initialization to work with .env file config */
function initDefaults() {
return {
timeout: Number(process.env.RA_TIMEOUT ?? 10000),
logLevel: process.env.RA_LOG_LEVEL ?? "info",
logFilePath: process.env.RA_LOG_FILE ?? `logs/restassured-${process.pid}.log`,
baseUrl: process.env.RA_BASE_URL ?? "https://example.com",
proxy: process.env.RA_PROXY ?? undefined, // NEW: support env-based proxy
};
}
/**
* Globally override the default configuration.
* Call this once at the beginning of your test suite if needed.
*
* Example:
* configureDefaults({ logLevel: "none", timeout: 30000 });
*
* @param overrides Partial configuration to apply on top of current defaults
*/
function configureDefaults(overrides) {
globalDefaults = { ...getCurrentDefaults(), ...overrides };
}
/**
* Get the current global default configuration.
* Useful for reading the active settings in internal modules (e.g. logger).
*
* Note: Does not merge or clone — returns internal state.
*/
function getCurrentDefaults() {
if (!globalDefaults) {
globalDefaults = initDefaults();
}
return globalDefaults;
}
/**
* Merge instance-level overrides with global defaults.
* Used internally by `fluentRest(...)` and `RestAssuredCore` to create per-request config.
*
* @param overrides Optional per-instance overrides
* @returns A new merged configuration object
*/
function getMergedDefaults(overrides) {
return { ...getCurrentDefaults(), ...overrides };
}