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, []); });