Files
dh-inspeccion-v2/api-v3/test/unit/inspection-acts-single-act.test.ts
T
admin cd24736df8 F1.1 · Inspección multi-Acta y firma diferida
Implementa el nuevo núcleo operativo: múltiples Actas por Inspección, un Informe por Acta, cierre de campo independiente y firma de empresa diferida con conformidad/disidencia.
2026-09-05 14:46:26 -03:00

33 lines
1.3 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { ConflictException } from '@nestjs/common';
import type { DataSource, EntityManager } from 'typeorm';
import { InspectionActsService } from '../../src/inspection-acts/inspection-acts.service';
type DraftActGuard = {
assertVisitHasNoDraftAct(manager: EntityManager, visitId: string): Promise<void>;
};
function serviceGuard(): DraftActGuard {
return new InspectionActsService(
{} as DataSource,
{} as never,
) as unknown as DraftActGuard;
}
test('multi-act guard allows a new act when the inspection has no draft act', async () => {
const manager = { query: async () => [] } as unknown as EntityManager;
await assert.doesNotReject(serviceGuard().assertVisitHasNoDraftAct(manager, 'visit-id'));
});
test('multi-act guard blocks only a second draft act for the same inspection', async () => {
const manager = { query: async () => [{ code: 'ACTA-2026-000001' }] } as unknown as EntityManager;
await assert.rejects(
serviceGuard().assertVisitHasNoDraftAct(manager, 'visit-id'),
(error: unknown) => error instanceof ConflictException
&& error.getResponse() instanceof Object
&& (error.getResponse() as { code?: string }).code
=== 'INSPECTION_VISIT_DRAFT_ACT_ALREADY_EXISTS',
);
});