senal88's picture
chore: deploy web_comercial from monorepo
933fa00 verified
import test from "node:test";
import assert from "node:assert/strict";
import { calcularSimulacao } from "../src/index.js";
const baseInput = {
credito_desejado: 300000,
parametros: {
id_plano: "PADRAO",
nome_plano: "Plano Padrao Imovel",
prazo_meses: 180,
taxa_administracao_total: 0.15,
fundo_reserva_mensal: 0.0005,
seguro_prestamista: 0.035,
},
tem_lance: false,
};
test("calcula parcela integral com valores esperados", () => {
const result = calcularSimulacao(baseInput);
assert.equal(result.prazo, 180);
assert.equal(result.credito, 300000);
assert.ok(result.parcela_integral.total > 0);
assert.equal(Number(result.parcela_integral.fundo_comum.toFixed(2)), 1666.67);
});
test("calcula cenario com lance e reduz prazo", () => {
const result = calcularSimulacao({
...baseInput,
tem_lance: true,
lance_percentual: 0.3,
});
assert.ok(result.valor_lance);
assert.equal(result.valor_lance, 90000);
assert.ok(result.prazo_apos_lance);
assert.ok(result.prazo_apos_lance < result.prazo);
});
test("falha quando prazo_meses for invalido", () => {
assert.throws(() => {
calcularSimulacao({
...baseInput,
parametros: {
...baseInput.parametros,
prazo_meses: 0,
},
});
}, /prazo_meses/);
});