chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import { plainToInstance } from 'class-transformer';
|
||||
import { validate } from 'class-validator';
|
||||
import { UpdateAssetProvenanceDto } from '../../src/asset-master/dto/update-asset-provenance.dto';
|
||||
import { ListTemporalAssetsQueryDto } from '../../src/asset-master/dto/list-temporal-assets-query.dto';
|
||||
import { AssetDataOrigin } from '../../src/database/entities';
|
||||
|
||||
test('provenance metadata accepts controlled origins and trims sources', async () => {
|
||||
const dto = plainToInstance(UpdateAssetProvenanceDto, {
|
||||
origin: AssetDataOrigin.PROVIDED_DOCUMENT,
|
||||
sourceName: ' Expediente 2026-14 ',
|
||||
observedAt: '2026-08-14T15:00:00.000Z',
|
||||
});
|
||||
assert.deepEqual(await validate(dto), []);
|
||||
assert.equal(dto.sourceName, 'Expediente 2026-14');
|
||||
});
|
||||
|
||||
test('provenance metadata rejects unknown origins and invalid dates', async () => {
|
||||
const dto = plainToInstance(UpdateAssetProvenanceDto, {
|
||||
origin: 'INTERNET',
|
||||
observedAt: 'ayer',
|
||||
});
|
||||
const properties = new Set((await validate(dto)).map((error) => error.property));
|
||||
assert.equal(properties.has('origin'), true);
|
||||
assert.equal(properties.has('observedAt'), true);
|
||||
});
|
||||
|
||||
test('temporal filters require a valid instant and bounded pagination', async () => {
|
||||
const valid = plainToInstance(ListTemporalAssetsQueryDto, {
|
||||
at: '2026-08-14T15:00:00.000Z',
|
||||
page: '2',
|
||||
pageSize: '50',
|
||||
});
|
||||
assert.deepEqual(await validate(valid), []);
|
||||
assert.equal(valid.page, 2);
|
||||
|
||||
const invalid = plainToInstance(ListTemporalAssetsQueryDto, {
|
||||
at: 'fecha',
|
||||
pageSize: '101',
|
||||
});
|
||||
const properties = new Set((await validate(invalid)).map((error) => error.property));
|
||||
assert.equal(properties.has('at'), true);
|
||||
assert.equal(properties.has('pageSize'), true);
|
||||
});
|
||||
Reference in New Issue
Block a user