Files
Investidor-V2/tests/frontend/anchor-integration.test.mjs
T

25 lines
1.6 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { portfolioPreparationHref } from '../../resources/js/lib/search-territory.ts';
import { createProjectDossierReport } from '../../resources/js/lib/project-dossier-report.ts';
test('anchor preparation keeps exact identity and explicit search geography', () => {
const query = new URLSearchParams({sector:'Agro-indústria e agricultura',province_id:'province-1',district_id:'district-1'});
const href = portfolioPreparationHref('anchor-1','/carteira/anchor-1?catalogue_query='+encodeURIComponent(query.toString()));
const params = new URL(href,'https://portal.invalid').searchParams;
assert.equal(params.get('source'),'portfolio:anchor-1');
assert.equal(params.get('province_id'),'province-1');
assert.equal(params.get('district_id'),'district-1');
assert.equal(params.has('opportunity'),false);
assert.equal(params.has('sector_id'),false);
});
test('report identifies the saved documentary anchor without asserting an available offer', () => {
const context = {version:1,portfolio_origin:{key:'portfolio:anchor-1',title:'Âncora documental',version:2,href:'/carteira/anchor-1'}};
const report = createProjectDossierReport({context_applicability_snapshot:JSON.stringify(context)},{selectedSections:new Set(['sources'])});
const row = report.sections.find(section=>section.id==='sources').rows.find(row=>row.field==='Projecto ou carteira de origem');
assert.equal(row.value,'Âncora documental');
assert.match(row.origin,/portfolio:anchor-1; versão 2/);
assert.match(row.classification,/localização e oferta não presumidas/);
});