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