Files
Investidor-V2/tools/investmoz-v2-source-reconciliation.test.cjs
nala 287e991486
tests / ci (push) Waiting to run
oportunidades 7
2026-10-13 11:40:29 +02:00

94 lines
3.2 KiB
JavaScript

const { test } = require('node:test');
const assert = require('node:assert/strict');
const { reconcile } = require('./investmoz-v2-source-reconciliation.cjs');
void test('validated official source and record survive missing citation fields', () => {
const result = reconcile(
{
kind: 'investment_zones',
record: {
id: 'z',
validation_status: 'validated',
legal_source_id: 'l',
},
},
{
dossiers: [],
legal_sources: [
{
id: 'l',
validation_status: 'validated',
diploma: 'QA official fixture',
},
],
},
);
assert.equal(result.existing_record_validation, 'validated');
assert.equal(result.existing_legal_validation, 'validated');
assert.equal(result.validation_revoked, false);
assert.equal(result.traceability, 'official_reference_identified');
});
void test('missing source field is a traceability gap, not rejection', () => {
const result = reconcile(
{
kind: 'projects',
record: {
id: 'p',
metadata: JSON.stringify({
documented_location_sources: {
'x:primary': {
source_quote: 'QA quotation',
source_reference: 'QA dossier',
applied_at: '2026-10-07',
},
},
}),
},
},
{ dossiers: [], legal_sources: [] },
);
assert.equal(
result.traceability,
'documentary_bridge_to_official_source_to_recover',
);
assert.equal(result.documentary_relations[0].source_quote, 'QA quotation');
assert.equal(result.validation_revoked, false);
assert.equal(result.calculation_activated, false);
});
void test('promoter cannot become official through validated record', () => {
const result = reconcile(
{
kind: 'investment_zones',
record: {
id: 'z',
validation_status: 'validated',
source_evidence: JSON.stringify([
{ source_type: 'promoter', title: 'QA promoter' },
]),
},
},
{ dossiers: [], legal_sources: [] },
);
assert.equal(result.existing_record_validation, 'validated');
assert.equal(result.official_references.length, 0);
assert.equal(result.official_validation_newly_granted, false);
});
void test('existing legal pending is preserved without invalidating consultation', () => {
const result = reconcile(
{
kind: 'investment_zones',
record: {
id: 'z',
validation_status: 'validated',
legal_source_id: 'l',
},
},
{
dossiers: [],
legal_sources: [{ id: 'l', validation_status: 'pending' }],
},
);
assert.equal(result.existing_record_validation, 'validated');
assert.equal(result.existing_legal_validation, 'pending');
assert.equal(result.validation_revoked, false);
});