46 lines
2.0 KiB
TypeScript
46 lines
2.0 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';
|
|
import { InspectionActUrgency } from '../../src/database/entities';
|
|
|
|
const ASSET_ID = '16e54e65-60cf-4739-b0d1-ccdd904fbfd5';
|
|
|
|
test('inspection act DTO accepts urgency, content and selected visit assets', async () => {
|
|
const dto = plainToInstance(CreateInspectionActDto, {
|
|
occurredAt: '2026-08-14T15:30:00.000Z',
|
|
urgency: InspectionActUrgency.NON_URGENT,
|
|
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.urgency, InspectionActUrgency.NON_URGENT);
|
|
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',
|
|
urgency: InspectionActUrgency.NON_URGENT,
|
|
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');
|
|
});
|