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

46 lines
1.9 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';
void 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);
});
void 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/);
});