From 100d457484a2cfae1a67999a6b8dd944031d2fa1 Mon Sep 17 00:00:00 2001 From: enlineawork Date: Tue, 8 Sep 2026 11:42:48 -0300 Subject: [PATCH] test(f4): guard Android inspection contract from legacy fields --- .../unit/f4-inspection-legacy-fields.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/api-v3/test/unit/f4-inspection-legacy-fields.test.ts b/api-v3/test/unit/f4-inspection-legacy-fields.test.ts index 47e9508..90a7b63 100644 --- a/api-v3/test/unit/f4-inspection-legacy-fields.test.ts +++ b/api-v3/test/unit/f4-inspection-legacy-fields.test.ts @@ -61,6 +61,22 @@ test('F4: el contrato WEB de Inspecciones no reintroduce title, visitTitle ni pl assert.doesNotMatch(inspectionContract, /\bplannedEndAt\b/); }); +test('F4: el contrato Android de Inspecciones no reintroduce title ni plannedEndAt', () => { + const android = read('../android-app/app/src/main/java/com/korexlabs/dhinspeccion/data/DhMobile.kt'); + const summaryStart = android.indexOf('data class VisitSummary('); + const summaryEnd = android.indexOf('data class VisitMeta('); + const detailStart = android.indexOf('data class VisitDetail('); + const detailEnd = android.indexOf('// ---------- Field inventory ----------'); + assert.notEqual(summaryStart, -1); + assert.notEqual(summaryEnd, -1); + assert.notEqual(detailStart, -1); + assert.notEqual(detailEnd, -1); + + const visitContracts = `${android.slice(summaryStart, summaryEnd)}\n${android.slice(detailStart, detailEnd)}`; + assert.doesNotMatch(visitContracts, /\bval title\s*:/); + assert.doesNotMatch(visitContracts, /\bplannedEndAt\b/); +}); + test('F4: la migración respalda datos antes de retirar columnas legacy', async () => { const statements: string[] = []; const queryRunner = {