chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
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 {
|
||||
InspectionCommunicationChannel,
|
||||
InspectionCommunicationDirection,
|
||||
InspectionCommunicationType,
|
||||
InspectionEvidenceKind,
|
||||
InspectionEvidencePurpose,
|
||||
} from '../../src/database/entities';
|
||||
import { CreateInspectionCommunicationDto } from '../../src/inspection-findings/dto/create-inspection-communication.dto';
|
||||
import { CreateInspectionEvidenceDto } from '../../src/inspection-findings/dto/create-inspection-evidence.dto';
|
||||
|
||||
test('D4 evidence DTO transforms multipart coordinates and accepts a communication link', async () => {
|
||||
const dto = plainToInstance(CreateInspectionEvidenceDto, {
|
||||
kind: InspectionEvidenceKind.DOCUMENT,
|
||||
purpose: InspectionEvidencePurpose.COMPANY_RESPONSE,
|
||||
communicationId: 'd567722e-888f-45e8-8ac6-a8bfa6855518',
|
||||
capturedAt: '2026-08-14T20:30:00.000Z',
|
||||
latitude: '-32.889458',
|
||||
longitude: '-68.845839',
|
||||
accuracyM: '4.250',
|
||||
deviceLabel: 'Panel web',
|
||||
});
|
||||
assert.deepEqual(await validate(dto), []);
|
||||
assert.equal(dto.latitude, -32.889458);
|
||||
assert.equal(dto.accuracyM, 4.25);
|
||||
});
|
||||
|
||||
test('D4 communication DTO accepts a company response and normalizes text', async () => {
|
||||
const dto = plainToInstance(CreateInspectionCommunicationDto, {
|
||||
direction: InspectionCommunicationDirection.INBOUND,
|
||||
channel: InspectionCommunicationChannel.EMAIL,
|
||||
type: InspectionCommunicationType.COMPANY_RESPONSE,
|
||||
occurredAt: '2026-08-14T20:30:00.000Z',
|
||||
subject: ' Respuesta al hallazgo H001 ',
|
||||
details: ' Se comprometen a corregir. ',
|
||||
contactEmail: 'responsable@empresa.test',
|
||||
});
|
||||
assert.deepEqual(await validate(dto), []);
|
||||
assert.equal(dto.subject, 'Respuesta al hallazgo H001');
|
||||
assert.equal(dto.details, 'Se comprometen a corregir.');
|
||||
});
|
||||
|
||||
test('D4 communication DTO rejects invalid email and date', async () => {
|
||||
const dto = plainToInstance(CreateInspectionCommunicationDto, {
|
||||
direction: InspectionCommunicationDirection.OUTBOUND,
|
||||
channel: InspectionCommunicationChannel.EMAIL,
|
||||
type: InspectionCommunicationType.AUTHORITY_NOTICE,
|
||||
occurredAt: '14/08/2026',
|
||||
subject: 'Notificación',
|
||||
contactEmail: 'correo-invalido',
|
||||
});
|
||||
const errors = await validate(dto);
|
||||
assert.equal(errors.some((error) => error.property === 'occurredAt'), true);
|
||||
assert.equal(errors.some((error) => error.property === 'contactEmail'), true);
|
||||
});
|
||||
Reference in New Issue
Block a user