mirror of
https://github.com/usebruno/bruno.git
synced 2026-06-27 06:34:06 +00:00
* 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.
67 lines
2.4 KiB
JavaScript
67 lines
2.4 KiB
JavaScript
const Bru = require('../src/bru');
|
|
|
|
describe('Bru.setEnvVar', () => {
|
|
const makeBru = () =>
|
|
new Bru({
|
|
runtime: 'quickjs',
|
|
envVariables: {},
|
|
runtimeVariables: {},
|
|
processEnvVars: {},
|
|
collectionPath: '/',
|
|
collectionName: 'Test'
|
|
});
|
|
|
|
test('updates envVariables and does not mark persistent when persist=false', () => {
|
|
const bru = makeBru();
|
|
bru.setEnvVar('non_persist', 'value', { persist: false });
|
|
expect(bru.envVariables.non_persist).toBe('value');
|
|
expect(bru.persistentEnvVariables.non_persist).toBeUndefined();
|
|
});
|
|
|
|
test('updates envVariables and tracks persistent when persist=true (string only)', () => {
|
|
const bru = makeBru();
|
|
bru.setEnvVar('persist_me', 'value', { persist: true });
|
|
expect(bru.envVariables.persist_me).toBe('value');
|
|
expect(bru.persistentEnvVariables.persist_me).toBe('value');
|
|
});
|
|
|
|
test('updates envVariables when options are omitted (defaults to non-persistent)', () => {
|
|
const bru = makeBru();
|
|
bru.setEnvVar('no_options', 'value');
|
|
expect(bru.envVariables.no_options).toBe('value');
|
|
expect(bru.persistentEnvVariables.no_options).toBeUndefined();
|
|
});
|
|
|
|
test('throws when persist=true but value is not a string', () => {
|
|
const bru = makeBru();
|
|
expect(() => bru.setEnvVar('persist_me', 123, { persist: true })).toThrow(
|
|
/Persistent environment variables must be strings/
|
|
);
|
|
});
|
|
|
|
test('changing existing key to non-persistent removes prior persisted entry', () => {
|
|
const bru = makeBru();
|
|
bru.setEnvVar('same_key', 'old', { persist: true });
|
|
expect(bru.persistentEnvVariables.same_key).toBe('old');
|
|
|
|
bru.setEnvVar('same_key', 'new');
|
|
expect(bru.envVariables.same_key).toBe('new');
|
|
expect(bru.persistentEnvVariables.same_key).toBeUndefined();
|
|
});
|
|
|
|
test('changing existing key to persistent updates persisted value', () => {
|
|
const bru = makeBru();
|
|
bru.setEnvVar('same_key', 'old');
|
|
expect(bru.persistentEnvVariables.same_key).toBeUndefined();
|
|
|
|
bru.setEnvVar('same_key', 'new', { persist: true });
|
|
expect(bru.envVariables.same_key).toBe('new');
|
|
expect(bru.persistentEnvVariables.same_key).toBe('new');
|
|
});
|
|
|
|
test('validates key name - invalid characters are rejected', () => {
|
|
const bru = makeBru();
|
|
expect(() => bru.setEnvVar('invalid key', 'v')).toThrow(/contains invalid characters/);
|
|
});
|
|
});
|