Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> git-subtree-dir: gti-maquina-comercial git-subtree-mainline:93ca82979egit-subtree-split:b77484946f
28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { variantForLead, renderCampaignMessage } from '../src/outreach/campaign-messages.mjs';
|
|
|
|
const variants = [{ id: 1, code: 'A', mensagem: 'Ola A' }, { id: 2, code: 'B', mensagem: 'Ola B' }, { id: 3, code: 'C', mensagem: 'Ola C' }];
|
|
|
|
test('variantForLead e deterministico (mesmo lead sempre cai na mesma variante)', () => {
|
|
const primeira = variantForLead(variants, 42);
|
|
const segunda = variantForLead(variants, 42);
|
|
assert.equal(primeira.code, segunda.code);
|
|
});
|
|
|
|
test('variantForLead distribui entre variantes diferentes conforme o id', () => {
|
|
assert.equal(variantForLead(variants, 0).code, 'A');
|
|
assert.equal(variantForLead(variants, 1).code, 'B');
|
|
assert.equal(variantForLead(variants, 2).code, 'C');
|
|
assert.equal(variantForLead(variants, 3).code, 'A');
|
|
});
|
|
|
|
test('variantForLead lanca erro sem variantes ativas', () => {
|
|
assert.throws(() => variantForLead([], 1), /sem variantes/);
|
|
});
|
|
|
|
test('renderCampaignMessage substitui variaveis do lead', () => {
|
|
const texto = renderCampaignMessage({ mensagem: 'Ola {empresa}, sobre {produto}' }, { empresa: 'Oficina do Ze', produto: 'ERP' });
|
|
assert.equal(texto, 'Ola Oficina do Ze, sobre ERP');
|
|
});
|