agent updates
This commit is contained in:
51
test/config-utils.test.js
Normal file
51
test/config-utils.test.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const ConfigUtils = require('../src/helper/configUtils.js');
|
||||
|
||||
const defaultConfig = {
|
||||
functionality: {
|
||||
softwareType: {
|
||||
default: 'measurement',
|
||||
rules: { type: 'string' },
|
||||
},
|
||||
},
|
||||
general: {
|
||||
logging: {
|
||||
enabled: { default: true, rules: { type: 'boolean' } },
|
||||
logLevel: {
|
||||
default: 'info',
|
||||
rules: {
|
||||
type: 'enum',
|
||||
values: [{ value: 'debug' }, { value: 'info' }, { value: 'warn' }, { value: 'error' }],
|
||||
},
|
||||
},
|
||||
},
|
||||
name: { default: 'default-name', rules: { type: 'string' } },
|
||||
},
|
||||
scaling: {
|
||||
absMin: { default: 0, rules: { type: 'number' } },
|
||||
absMax: { default: 100, rules: { type: 'number' } },
|
||||
},
|
||||
};
|
||||
|
||||
test('initConfig applies defaults', () => {
|
||||
const cfg = new ConfigUtils(defaultConfig, false, 'error');
|
||||
const result = cfg.initConfig({});
|
||||
assert.equal(result.general.name, 'default-name');
|
||||
assert.equal(result.scaling.absMax, 100);
|
||||
});
|
||||
|
||||
test('updateConfig merges nested overrides and revalidates', () => {
|
||||
const cfg = new ConfigUtils(defaultConfig, false, 'error');
|
||||
const base = cfg.initConfig({ general: { name: 'sensor-a' } });
|
||||
const updated = cfg.updateConfig(base, { scaling: { absMax: 150 } });
|
||||
|
||||
assert.equal(updated.general.name, 'sensor-a');
|
||||
assert.equal(updated.scaling.absMax, 150);
|
||||
});
|
||||
|
||||
test('constructor respects explicit logger disabled flag', () => {
|
||||
const cfg = new ConfigUtils(defaultConfig, false, 'error');
|
||||
assert.equal(cfg.logger.logging, false);
|
||||
});
|
||||
Reference in New Issue
Block a user