23 lines
2.0 KiB
JavaScript
23 lines
2.0 KiB
JavaScript
import test from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
import { inheritCompatibleFields } from '../../resources/js/lib/context-inheritance.ts';
|
|
import { buildProjectDossierRows, exportProjectDossierCsv } from '../../resources/js/lib/project-dossier.ts';
|
|
import { createProjectDossierReport, createProjectDossierPrintHtml } from '../../resources/js/lib/project-dossier-report.ts';
|
|
|
|
test('reports distinguish opportunity inheritance, dossier declarations and later edits without rewriting the snapshot', async()=>{
|
|
const source={project_title:'Título do promotor',project_summary:'Resumo da oportunidade',sector_id:'1',sector_id_label:'Agronegócio',context_applicability_snapshot:JSON.stringify({version:1,field_provenance:{project_summary:{kind:'opportunity',title:'Florestas — Corredor da Beira',version:2},sector_id:{kind:'opportunity',title:'Florestas — Corredor da Beira',version:2},project_title:{kind:'process_declaration',context_revision:1}}})};
|
|
const inherited=inheritCompatibleFields('dossier:A:simulator',{},source,null);
|
|
const draft={...inherited.patch,context_reuse:inherited.metadata};
|
|
let rows=buildProjectDossierRows(draft);
|
|
assert.match(rows.find(r=>r[1]==='Resumo')[3],/Herdado de oportunidade «Florestas/);
|
|
assert.match(rows.find(r=>r[1]==='Título')[3],/dados introduzidos pelo utilizador no dossier/);
|
|
const edited={...draft,project_summary:'Resumo alterado no simulador'}; const before=JSON.stringify(edited);
|
|
rows=buildProjectDossierRows(edited);
|
|
assert.match(rows.find(r=>r[1]==='Resumo')[3],/Alterado posteriormente pelo utilizador; origem anterior: oportunidade/);
|
|
assert.match(exportProjectDossierCsv(edited),/origem anterior: oportunidade/);
|
|
const report=createProjectDossierReport(edited,{selectedSections:new Set(['summary','project'])});
|
|
assert.match(await createProjectDossierPrintHtml(report,[],false),/Resumo alterado no simulador/);
|
|
assert.equal(JSON.stringify(edited),before);
|
|
assert.equal(buildProjectDossierRows({project_summary:'Legado'}).find(r=>r[1]==='Resumo')[3],'Declarado pelo utilizador');
|
|
});
|