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/); });