Files
dh-inspeccion-v2/api-v3/test/unit/inspection-acts-dto.test.ts
admin e30e5d90ea
Android CI / RC / Android · lint, tests, debug APK, release compile (push) Successful in 5m31s
Android CI / RC / Android · lint, tests, debug APK, release compile (pull_request) Successful in 5m30s
DH V2 CI / API · typecheck, tests, build (pull_request) Successful in 33s
DH V2 CI / WEB · typecheck, build (pull_request) Successful in 18s
Inspection planning smoke / F6.1 · real inspection create (pull_request) Failing after 1m33s
Production dependency audit / API · production dependencies (pull_request) Successful in 9s
Production dependency audit / WEB · production dependencies (pull_request) Successful in 9s
DH V2 CI / Docker / scripts contract (pull_request) Successful in 1m5s
fix(android): align Acta flow and defer urgency to close
2026-09-14 09:27:30 -03:00

42 lines
1.8 KiB
TypeScript

import 'reflect-metadata';
import assert from 'node:assert/strict';
import test from 'node:test';
import { plainToInstance } from 'class-transformer';
import { validate } from 'class-validator';
import { CancelInspectionActDto } from '../../src/inspection-acts/dto/cancel-inspection-act.dto';
import { CreateInspectionActDto } from '../../src/inspection-acts/dto/create-inspection-act.dto';
const ASSET_ID = '16e54e65-60cf-4739-b0d1-ccdd904fbfd5';
test('inspection act DTO accepts content and selected visit assets without deciding urgency', async () => {
const dto = plainToInstance(CreateInspectionActDto, {
occurredAt: '2026-08-14T15:30:00.000Z',
title: ' Verificación de instalación ',
summary: ' Se inspeccionó el activo seleccionado. ',
observations: ' Sin novedades. ',
assetIds: [ASSET_ID],
});
assert.deepEqual(await validate(dto), []);
assert.equal(dto.title, 'Verificación de instalación');
assert.equal(dto.summary, 'Se inspeccionó el activo seleccionado.');
assert.equal(dto.observations, 'Sin novedades.');
});
test('inspection act DTO rejects duplicate assets', async () => {
const dto = plainToInstance(CreateInspectionActDto, {
occurredAt: '2026-08-14T15:30:00.000Z',
title: 'Acta',
summary: 'Contenido',
assetIds: [ASSET_ID, ASSET_ID],
});
assert.equal((await validate(dto)).some((error) => error.property === 'assetIds'), true);
});
test('cancellation requires a meaningful reason', async () => {
const invalid = plainToInstance(CancelInspectionActDto, { reason: ' breve ' });
const valid = plainToInstance(CancelInspectionActDto, { reason: ' Error de carga confirmado ' });
assert.equal((await validate(invalid)).some((error) => error.property === 'reason'), true);
assert.deepEqual(await validate(valid), []);
assert.equal(valid.reason, 'Error de carga confirmado');
});