文件
hyb-oa/server/tests/unit/routes/assets.validation.test.js
2026-09-16 20:20:11 +08:00

41 行
1.5 KiB
JavaScript

const assetsRoutes = require('../../../src/routes/assets');
describe('assets route validation', () => {
const validPayload = {
name: 'TEST SMOKE ASSET1D FA',
assetType: 'fixed_asset',
sensitivityLevel: 'internal',
categoryId: '11111111-1111-4111-8111-111111111111',
legalEntityId: '22222222-2222-4222-8222-222222222222',
costCenterId: '33333333-3333-4333-8333-333333333333',
ownerEmployeeId: '44444444-4444-4444-8444-444444444444',
keeperEmployeeId: '55555555-5555-4555-8555-555555555555',
metadata: {
testMarker: 'TEST-SMOKE-ASSET1D',
sourceOfTruth: 'git',
},
};
it('accepts ASSET1D metadata objects on asset create payloads', () => {
expect(assetsRoutes.__testables.parseAssetCreateBodyForTest(validPayload)).toEqual(
expect.objectContaining({
name: 'TEST SMOKE ASSET1D FA',
assetType: 'fixed_asset',
metadata: {
testMarker: 'TEST-SMOKE-ASSET1D',
sourceOfTruth: 'git',
},
}),
);
});
it.each(['lastVerifiedAt', 'expiresAt', 'activatedAt', 'retiredAt'])('rejects calendar overflow in %s', (field) => {
expect(() => assetsRoutes.__testables.parseAssetCreateBodyForTest({ ...validPayload, [field]: '2026-02-30' }))
.toThrow();
expect(assetsRoutes.__testables.parseAssetCreateBodyForTest({ ...validPayload, [field]: '2024-02-29' })[field])
.toBe('2024-02-29');
expect(assetsRoutes.__testables.parseAssetCreateBodyForTest({ ...validPayload, [field]: null })[field])
.toBeNull();
});
});