Files
SLACK_COORD_RELATORIO/coordenador/logic/config.test.js
T
Gustavo Santos e322cec92b chore: import coordenador (subtree)
git-subtree-dir: coordenador
git-subtree-mainline: facbe2e340
git-subtree-split: ce7af94d55
2026-10-01 14:25:55 -03:00

46 lines
1.7 KiB
JavaScript

const { test } = require('node:test');
const assert = require('node:assert/strict');
const { parseConfig } = require('./config');
test('valores padrao quando env vazio', () => {
const config = parseConfig({});
assert.equal(config.aiEnabled, true);
assert.equal(config.aiProvider, 'openai');
assert.equal(config.candidatePoolSize, 60);
assert.equal(config.aiMaxCandidates, 60);
assert.equal(config.topN, 10);
assert.equal(config.aiConfidenceThreshold, 0.6);
assert.equal(config.shadowMode, true);
assert.equal(config.devMode, true);
assert.equal(config.environment, 'dev');
assert.equal(config.sendEnabled, false);
});
test('aiMaxCandidates default e igual a candidatePoolSize default -- nenhum candidato elegivel fica de fora por cap artificial (missao secao 13)', () => {
const config = parseConfig({});
assert.equal(config.aiMaxCandidates, config.candidatePoolSize);
});
test('SEND_ENABLED=true liga o envio real; ENVIRONMENT=production e respeitado', () => {
const config = parseConfig({ SEND_ENABLED: 'true', ENVIRONMENT: 'production' });
assert.equal(config.sendEnabled, true);
assert.equal(config.environment, 'production');
});
test('AI_ENABLED=false desliga a IA', () => {
const config = parseConfig({ AI_ENABLED: 'false' });
assert.equal(config.aiEnabled, false);
});
test('TOP_N nunca passa de 10 mesmo se configurado maior', () => {
const config = parseConfig({ TOP_N: '25' });
assert.equal(config.topN, 10);
});
test('overrides numericos sao respeitados', () => {
const config = parseConfig({ CANDIDATE_POOL_SIZE: '80', AI_MAX_CANDIDATES: '15', COOLDOWN_DAYS: '2' });
assert.equal(config.candidatePoolSize, 80);
assert.equal(config.aiMaxCandidates, 15);
assert.equal(config.cooldownDays, 2);
});