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.
This commit is contained in:
@@ -4,37 +4,29 @@ import { ConflictException } from '@nestjs/common';
|
||||
import type { DataSource, EntityManager } from 'typeorm';
|
||||
import { InspectionActsService } from '../../src/inspection-acts/inspection-acts.service';
|
||||
|
||||
type SingleActGuard = {
|
||||
assertVisitHasNoAct(manager: EntityManager, visitId: string): Promise<void>;
|
||||
type DraftActGuard = {
|
||||
assertVisitHasNoDraftAct(manager: EntityManager, visitId: string): Promise<void>;
|
||||
};
|
||||
|
||||
function serviceGuard(): SingleActGuard {
|
||||
function serviceGuard(): DraftActGuard {
|
||||
return new InspectionActsService(
|
||||
{} as DataSource,
|
||||
{} as never,
|
||||
) as unknown as SingleActGuard;
|
||||
) as unknown as DraftActGuard;
|
||||
}
|
||||
|
||||
test('single-act guard allows a visit without an act', async () => {
|
||||
const manager = {
|
||||
query: async () => [],
|
||||
} as unknown as EntityManager;
|
||||
|
||||
await assert.doesNotReject(
|
||||
serviceGuard().assertVisitHasNoAct(manager, 'visit-id'),
|
||||
);
|
||||
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('single-act guard rejects a second act for the same visit', async () => {
|
||||
const manager = {
|
||||
query: async () => [{ code: 'ACTA-2026-000001' }],
|
||||
} as unknown as EntityManager;
|
||||
|
||||
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().assertVisitHasNoAct(manager, 'visit-id'),
|
||||
serviceGuard().assertVisitHasNoDraftAct(manager, 'visit-id'),
|
||||
(error: unknown) => error instanceof ConflictException
|
||||
&& error.getResponse() instanceof Object
|
||||
&& (error.getResponse() as { code?: string }).code
|
||||
=== 'INSPECTION_VISIT_ACT_ALREADY_EXISTS',
|
||||
=== 'INSPECTION_VISIT_DRAFT_ACT_ALREADY_EXISTS',
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user