test(api): reject inspection context changes after creation
This commit is contained in:
@@ -7,6 +7,7 @@ import { ChangeInspectionVisitStatusDto } from '../../src/inspection-visits/dto/
|
|||||||
import { CreateInspectionVisitDto } from '../../src/inspection-visits/dto/create-inspection-visit.dto';
|
import { CreateInspectionVisitDto } from '../../src/inspection-visits/dto/create-inspection-visit.dto';
|
||||||
import { ReplaceInspectionVisitAssetsDto } from '../../src/inspection-visits/dto/replace-inspection-visit-assets.dto';
|
import { ReplaceInspectionVisitAssetsDto } from '../../src/inspection-visits/dto/replace-inspection-visit-assets.dto';
|
||||||
import { ReplaceInspectionVisitTeamDto } from '../../src/inspection-visits/dto/replace-inspection-visit-team.dto';
|
import { ReplaceInspectionVisitTeamDto } from '../../src/inspection-visits/dto/replace-inspection-visit-team.dto';
|
||||||
|
import { UpdateInspectionVisitDto } from '../../src/inspection-visits/dto/update-inspection-visit.dto';
|
||||||
|
|
||||||
const AREA_ID = '16e54e65-60cf-4739-b0d1-ccdd904fbfd5';
|
const AREA_ID = '16e54e65-60cf-4739-b0d1-ccdd904fbfd5';
|
||||||
const COMPANY_ID = 'ce96211d-ac15-4421-8868-4185323aff61';
|
const COMPANY_ID = 'ce96211d-ac15-4421-8868-4185323aff61';
|
||||||
@@ -25,6 +26,25 @@ test('visit DTO accepts only the minimum planning data required for quick creati
|
|||||||
assert.equal(dto.leadInspectorUserId, USER_ID);
|
assert.equal(dto.leadInspectorUserId, USER_ID);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('visit update DTO keeps Area, Yacimiento and Operadora immutable after creation', async () => {
|
||||||
|
const contextAttempt = plainToInstance(UpdateInspectionVisitDto, {
|
||||||
|
operationalAreaId: AREA_ID,
|
||||||
|
scopeAssetId: AREA_ID,
|
||||||
|
operatorCompanyId: COMPANY_ID,
|
||||||
|
});
|
||||||
|
const errors = await validate(contextAttempt);
|
||||||
|
assert.equal(errors.some((error) => error.property === 'operationalAreaId'), true);
|
||||||
|
assert.equal(errors.some((error) => error.property === 'scopeAssetId'), true);
|
||||||
|
assert.equal(errors.some((error) => error.property === 'operatorCompanyId'), true);
|
||||||
|
|
||||||
|
const ordinaryUpdate = plainToInstance(UpdateInspectionVisitDto, {
|
||||||
|
objective: 'Control preventivo programado',
|
||||||
|
plannedStartAt: '2026-09-17T12:00:00.000Z',
|
||||||
|
instructions: 'Coordinar ingreso con la Operadora.',
|
||||||
|
});
|
||||||
|
assert.deepEqual(await validate(ordinaryUpdate), []);
|
||||||
|
});
|
||||||
|
|
||||||
test('asset and team DTOs reject duplicate references', async () => {
|
test('asset and team DTOs reject duplicate references', async () => {
|
||||||
const assets = Object.assign(new ReplaceInspectionVisitAssetsDto(), {
|
const assets = Object.assign(new ReplaceInspectionVisitAssetsDto(), {
|
||||||
assetIds: [AREA_ID, AREA_ID],
|
assetIds: [AREA_ID, AREA_ID],
|
||||||
|
|||||||
Reference in New Issue
Block a user