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; }; 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', ); });