import 'reflect-metadata'; import assert from 'node:assert/strict'; import test from 'node:test'; import { readFileSync } from 'node:fs'; const mergedDossier = readFileSync('src/asset-master/merged-inventory-dossier.service.ts', 'utf8'); const dossierPanel = readFileSync('../web-v2/src/features/assets/AssetDossierPanel.tsx', 'utf8'); const simpleDetail = readFileSync('../web-v2/src/pages/SimpleInventoryDetailPage.tsx', 'utf8'); test('F7 mantiene Actividad disponible para Yacimiento', () => { assert.match(simpleDetail, /kind === 'YACIMIENTO'/); assert.match(simpleDetail, /setTab\('activity'\)/); assert.match(simpleDetail, /AssetDossierPanel assetId=\{asset\.id\}/); }); test('F7 no hace depender el dossier territorial del subsistema de fusión', () => { assert.match(mergedDossier, /MERGEABLE_DOSSIER_TYPES = new Set\(\['instalacion', 'subinstalacion'\]\)/); assert.match(mergedDossier, /if \(!MERGEABLE_DOSSIER_TYPES\.has\(requestedTypeCode\)\)/); assert.match(mergedDossier, /private readonly activity: ActivityDossierService/); assert.match(mergedDossier, /return await this\.activity\.dossier\(requestedAssetId\)/); }); test('F7 la consulta auxiliar de merge nunca bloquea la carga de Actividad', () => { assert.match(dossierPanel, /getInventoryMergeStatus\(assetId\)\.catch\(\(\) => null\)/); assert.match(dossierPanel, /getAssetDossier\(assetId\)/); });