From 3bfa3bce1bb24b31debf1d16f2c6e395e5f8291b Mon Sep 17 00:00:00 2001 From: enlineawork Date: Tue, 8 Sep 2026 14:43:02 -0300 Subject: [PATCH] fix(f4): require current checklist before inspection execution --- .../inspection-visits/inspection-visit-lifecycle.service.ts | 6 ++++++ api-v3/test/unit/mobile-inspector-integration.test.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts b/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts index cb1c4c5..d1d7418 100644 --- a/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts +++ b/api-v3/src/inspection-visits/inspection-visit-lifecycle.service.ts @@ -302,6 +302,12 @@ export class InspectionVisitLifecycleService { message: 'Definí Área/Yacimiento, Operadora, Inspector responsable y fecha de inicio antes de planificar', }); } + if (!visit.checklistGeneratedAt || visit.checklistGeneration < 1) { + throw new BadRequestException({ + code: 'INSPECTION_CHECKLIST_REQUIRED', + message: 'Generá el checklist automático antes de confirmar la planificación', + }); + } const [relation] = await manager.query(` SELECT 1 FROM area_company_relations diff --git a/api-v3/test/unit/mobile-inspector-integration.test.ts b/api-v3/test/unit/mobile-inspector-integration.test.ts index 7a970bc..b08e035 100644 --- a/api-v3/test/unit/mobile-inspector-integration.test.ts +++ b/api-v3/test/unit/mobile-inspector-integration.test.ts @@ -23,7 +23,7 @@ test('D5.1/F4 applies the mobile-inspector policy to every field operation', asy assert.equal(policyCalls(acts), 3); assert.equal(policyCalls(findings), 2); assert.equal(policyCalls(evidence), 1); - assert.equal(policyCalls(closing), 7); + assert.equal(policyCalls(closing), 6); assert.match(evidence, /purpose === InspectionEvidencePurpose\.OBSERVATION/); });