37 lines
1.3 KiB
TypeScript
37 lines
1.3 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { plainToInstance } from 'class-transformer';
|
|
import { validate } from 'class-validator';
|
|
import { ListAssetVersionsQueryDto } from '../../src/asset-master/dto/list-asset-versions-query.dto';
|
|
import { AssetVersionChangeType } from '../../src/database/entities';
|
|
|
|
test('asset history filters accept pagination, dates and known change types', async () => {
|
|
const dto = plainToInstance(ListAssetVersionsQueryDto, {
|
|
page: '2',
|
|
pageSize: '50',
|
|
search: ' ACT-001 ',
|
|
changeType: AssetVersionChangeType.GEOMETRY_UPDATED,
|
|
from: '2026-08-01T00:00:00.000Z',
|
|
});
|
|
|
|
assert.deepEqual(await validate(dto), []);
|
|
assert.equal(dto.page, 2);
|
|
assert.equal(dto.pageSize, 50);
|
|
assert.equal(dto.search, 'ACT-001');
|
|
});
|
|
|
|
test('asset history filters reject invalid pages, dates and change types', async () => {
|
|
const dto = plainToInstance(ListAssetVersionsQueryDto, {
|
|
page: '0',
|
|
pageSize: '500',
|
|
changeType: 'DELETED',
|
|
to: 'fecha-invalida',
|
|
});
|
|
const properties = new Set((await validate(dto)).map((error) => error.property));
|
|
|
|
assert.equal(properties.has('page'), true);
|
|
assert.equal(properties.has('pageSize'), true);
|
|
assert.equal(properties.has('changeType'), true);
|
|
assert.equal(properties.has('to'), true);
|
|
});
|