Files
dh-inspeccion-v2/api-v3/test/unit/field-briefing-runtime.test.ts
T

51 lines
1.6 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import type { DataSource } from 'typeorm';
import { FieldBriefingService } from '../../src/act-administration/field-briefing.service';
test('field briefing convierte el timestamptz de pg a YYYY-MM-DD antes del cast SQL', async () => {
const calls: Array<{ sql: string; params: unknown[] }> = [];
let queryNumber = 0;
const dataSource = {
query: async (sql: string, params: unknown[]) => {
calls.push({ sql, params });
queryNumber += 1;
if (queryNumber === 1) {
return [{
id: '11111111-1111-4111-8111-111111111111',
code: 'INSP-00002-17-09-26',
status: 'DRAFT',
plannedStartAt: new Date('2026-09-17T23:42:00.000Z'),
areaId: '22222222-2222-4222-8222-222222222222',
companyId: '33333333-3333-4333-8333-333333333333',
areaCode: 'PRES-AREA-TEST',
areaName: 'Barrancas',
companyCode: 'PRES-ORG-TEST',
companyName: 'Petróleos Sudamericanos Energy S.A.',
}];
}
return [];
},
} as unknown as DataSource;
const result = await new FieldBriefingService(dataSource).forVisit(
'11111111-1111-4111-8111-111111111111',
);
assert.equal(calls.length, 2);
assert.equal(calls[1]?.params[3], '2026-09-17');
assert.equal(result.plannedOn, '2026-09-17');
assert.deepEqual(result.summary, {
acts: 0,
findings: 0,
inventoryItems: 0,
responseOverdue: 0,
commitmentOverdue: 0,
verificationPending: 0,
});
assert.deepEqual(result.acts, []);
});