From 8e2ed6e38a9d2bc21c601b112b3ac4b11109cddc Mon Sep 17 00:00:00 2001 From: enlineawork Date: Tue, 8 Sep 2026 22:38:40 -0300 Subject: [PATCH] test(f5): model normalized yacimiento collision explicitly --- ...5-inventory-authoritative-contract.test.ts | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/api-v3/test/unit/f5-inventory-authoritative-contract.test.ts b/api-v3/test/unit/f5-inventory-authoritative-contract.test.ts index ac4eeed..1863a6c 100644 --- a/api-v3/test/unit/f5-inventory-authoritative-contract.test.ts +++ b/api-v3/test/unit/f5-inventory-authoritative-contract.test.ts @@ -48,14 +48,25 @@ test('F5 territory preload is exactly the authorized Tablas de yacimiento y area } assert.equal([...literalNamesByKey.values()].filter((items) => items.size > 1).length, 1); + const literalAreasByYacimiento = new Map>(); const areasByYacimiento = new Map>(); for (const row of source.rows) { - const yacimiento = key(row.yacimiento); - const memberships = areasByYacimiento.get(yacimiento) ?? new Set(); + const literal = row.yacimiento.trim(); + const literalMemberships = literalAreasByYacimiento.get(literal) ?? new Set(); + literalMemberships.add(key(row.area)); + literalAreasByYacimiento.set(literal, literalMemberships); + + const normalized = key(row.yacimiento); + const memberships = areasByYacimiento.get(normalized) ?? new Set(); memberships.add(key(row.area)); - areasByYacimiento.set(yacimiento, memberships); + areasByYacimiento.set(normalized, memberships); } - assert.equal([...areasByYacimiento.values()].filter((items) => items.size > 1).length, 10); + const literalMembershipSurplus = [...literalAreasByYacimiento.values()] + .reduce((total, memberships) => total + Math.max(0, memberships.size - 1), 0); + const normalizedMembershipSurplus = [...areasByYacimiento.values()] + .reduce((total, memberships) => total + Math.max(0, memberships.size - 1), 0); + assert.equal(literalMembershipSurplus, 10); + assert.equal(normalizedMembershipSurplus, 11); for (const area of areas) { const rows = source.rows.filter((row) => key(row.area) === area);