import assert from 'node:assert/strict'; import test from 'node:test'; import { AUTHORITATIVE_INVENTORY_MODEL as model, AUTHORITATIVE_INVENTORY_MODEL_SOURCES as sources, } from '../../src/reference-data/authoritative-inventory-model'; test('authoritative SQL sources keep their exact cardinalities', () => { assert.equal(sources.territory.file, 'modelo_yacimientos.sql'); assert.equal(sources.territory.sha256, '6a1d96bc8af7e755dd0e2fd9faf08335625b9c76865208c3b8413d868aa5eb1a'); assert.equal(sources.inventory.file, 'modelo_relacional instalaciones y sub.sql'); assert.equal(sources.inventory.sha256, 'fb513f3909e78db298361a8a6998ca77026748f9b03cbab44c77b884ca862b49'); assert.equal(model.departments.length, 7); assert.equal(model.companies.length, 13); assert.equal(model.concessionTypes.length, 2); assert.equal(model.areas.length, 64); assert.equal(model.fields.length, 230); assert.equal(model.installationFamilies.length, 14); assert.equal(model.subinstallationFamilies.length, 109); assert.equal(model.findings.length, 181); assert.equal(model.installationFindings.length, 48); assert.equal(model.subinstallationFindings.length, 880); }); test('Area belongs only to Departamento while Yacimiento owns Area Empresa and concession', () => { for (const area of model.areas) { assert.ok(model.departments.some((department) => department.id === area.departamento_id)); assert.deepEqual(Object.keys(area).sort(), ['departamento_id', 'id', 'nombre']); } for (const field of model.fields) { assert.ok(model.areas.some((area) => area.id === field.area_id)); assert.ok(model.companies.some((company) => company.id === field.empresa_id)); assert.ok(model.concessionTypes.some((type) => type.id === field.tipo_concesion_id)); assert.deepEqual(Object.keys(field).sort(), ['area_id', 'empresa_id', 'id', 'nombre', 'tipo_concesion_id']); } }); test('Subinstalación classifications belong to one installation classification and every mapping resolves', () => { for (const subinstallation of model.subinstallationFamilies) { assert.ok(model.installationFamilies.some((installation) => installation.id === subinstallation.instalacion_id)); } for (const mapping of model.installationFindings) { assert.ok(model.installationFamilies.some((installation) => installation.id === mapping.instalacion_id)); assert.ok(model.findings.some((finding) => finding.id === mapping.hallazgo_id)); } for (const mapping of model.subinstallationFindings) { assert.ok(model.subinstallationFamilies.some((subinstallation) => subinstallation.id === mapping.subinstalacion_id)); assert.ok(model.findings.some((finding) => finding.id === mapping.hallazgo_id)); } });