20 lines
1.7 KiB
JavaScript
20 lines
1.7 KiB
JavaScript
import fs from 'node:fs';
|
|
import { economicCase } from '../tests/frontend/helpers/irpc-economic-case.mjs';
|
|
import { recordAnnual, saveAnnualBook, annualBook, calculateAnnual, annualHtml } from '../resources/js/lib/irpc-annual-settlement.ts';
|
|
import assert from 'node:assert/strict';
|
|
const out = new URL('../outputs/irpc-economic-liquidation-20261110/', import.meta.url);
|
|
fs.mkdirSync(out, { recursive: true });
|
|
if (process.argv[2] === 'recovered') {
|
|
const d = JSON.parse(fs.readFileSync(new URL('recovered.json', out), 'utf8'));
|
|
const b = annualBook(d), m = b.result.model;
|
|
assert.deepEqual(calculateAnnual(d, b).economicCredit, m.economicCredit);
|
|
const html = annualHtml(d);assert.match(html, /IRPC-economic-liquidation\/1/);
|
|
fs.writeFileSync(new URL('report.html', out), html);
|
|
fs.writeFileSync(new URL('verification.json', out), JSON.stringify({ synthetic: true, apiRecovered: true, currentRecalculation: true, html: true, liquidation: m.economicCredit.rows[0].liquidation, quota: m.economicCredit.rows[0].nationalLimit, balance: m.arithmeticBalance, activeChanged: false }, null, 2));
|
|
} else {
|
|
const c = economicCase();
|
|
Object.assign(c.b.economicCredits.rows[0], {kind:'liquidation',income:'150',liquidation:{attributed:'200',paidInCapital:'100',reference:'SYNTHETIC QA partilha; documented capital-income150, eligible100 and gain50; L6 already reconciled'},nationalMethod:'proportional',nationalBasisReference:'SYNTHETIC current base includes eligible100 plus nominal12'});
|
|
const b = recordAnnual(c.d, c.b, '2026-11-10T14:00:00+02:00');
|
|
fs.writeFileSync(new URL('fixture.json', out), JSON.stringify({ ...c.d, modelo_a_snapshot: saveAnnualBook(c.d, b) }));
|
|
}
|