Specify AT interest and CER questions and label simulation assumptions
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-25 21:04:53 +02:00
parent acf8ec3cb5
commit 7a11c4ef8f
8 changed files with 77 additions and 8 deletions
+1 -1
View File
@@ -48,7 +48,7 @@ test('missing CER references remain visible within each case sheet without presu
});
test('automatic result persists,recovers and reaches dossier with traceable parameters and history',()=>{
const d=draft(),b=recordMrfta({...book([payment('3650')]),mrfta:input()},true);d.modelo_a_snapshot=saveIrpcBook(d,b);const recovered=JSON.parse(JSON.stringify(d)),saved=irpcBook(recovered);assert.equal(irpcCurrent(recovered,saved),true);assert.equal(mrftaCurrent(saved,true),true);assert.equal(saved.mrftaResult.model.interest.numerator,'15');assert.equal(saved.mrftaResult.model.total.numerator,'3665');assert.equal(saved.mrftaResult.model.automatic.rows[0].segments.length,2);
const report=JSON.stringify(irpcReportRows(recovered));assert.match(report,/Taxa anual:10%/);assert.match(report,/QA parâmetro fictício/);assert.match(report,/5dias\/365/);assert.match(report,/metade por excesso/);assert.ok(!report.includes('total_cent_half_up'));assert.match(JSON.stringify(createProjectDossierReport(recovered,{selectedSections:new Set(['finance'])})),/3665/);assert.match(mrftaHtml(saved,true),/Juros calculados por parâmetros documentados/);
const report=JSON.stringify(irpcReportRows(recovered));assert.match(report,/Taxa anual:10%/);assert.match(report,/QA parâmetro fictício/);assert.match(report,/5dias\/365/);assert.match(report,/metade por excesso/);assert.ok(!report.includes('total_cent_half_up'));assert.match(JSON.stringify(createProjectDossierReport(recovered,{selectedSections:new Set(['finance'])})),/3665/);assert.match(mrftaHtml(saved,true),/Juros calculados por parâmetros documentados/);assert.match(mrftaHtml(saved,true),/simulação pelos pressupostos introduzidos, sem confirmação fiscal/);assert.match(mrftaHtml(saved,true),/Códigos provisórios ou de simulação não são correspondências oficiais/);assert.match(report,/sem validação por catálogo oficial/);assert.match(mrftaCases(saved.mrftaResult.model)[0].pending,/Código provisório ou de simulação não é correspondência oficial/);
saved.mrfta.interest.automatic.annualRate='';assert.equal(mrftaCurrent(saved,true),false);const changed=recordMrfta(saved,true);assert.equal(changed.mrftaResult.model.interest,null);assert.deepEqual(changed.mrftaHistory.at(-1),b.mrftaResult);
fs.mkdirSync('outputs/irpc-interest-cer',{recursive:true});fs.writeFileSync('outputs/irpc-interest-cer/calculated.json',JSON.stringify(recovered));fs.writeFileSync('outputs/irpc-interest-cer/preparation.html',mrftaHtml(b,true));
});