feat(captura): fechas de Obra bloqueadas tras establecerse, solo admin las cambia

This commit is contained in:
2026-09-12 07:52:40 +00:00
parent 1c81331614
commit d2e97f33f5
8 changed files with 175 additions and 10 deletions

View File

@@ -277,4 +277,46 @@ describe('TablaCaptura', () => {
expect(onGuardar).toHaveBeenCalledTimes(1)
expect(onGuardar.mock.calls[0][0]['409-1']).toEqual({ comentarios_obra: 'Nota X' })
})
it('fechas de Obra guardadas: disabled para no-admin, editables para admin', () => {
const camposEmparejados: CampoDef[] = [
{ campo: 'certificacion_gas', tipo: 'boolean', label: 'Certificación Gas', conFecha: 'certificacion_gas_fecha' },
{ campo: 'certificacion_gas_fecha', tipo: 'date', label: 'Fecha Certificación Gas' },
]
const datosConFecha: DatosCaptura = {
'409-1': { certificacion_gas: null, certificacion_gas_fecha: '2026-01-01' },
'409-2': { certificacion_gas: null, certificacion_gas_fecha: null },
}
// No-admin: la fecha guardada se deshabilita, la vacía sigue editable
const r1 = render(
<TablaCaptura
unidades={UNIDADES}
campos={camposEmparejados}
datos={datosConFecha}
onGuardar={vi.fn()}
guardando={false}
puedeEditarFechas={false}
/>,
)
const fechas1 = r1.container.querySelectorAll('input[type="date"]')
expect((fechas1[0] as HTMLInputElement).disabled).toBe(true)
expect((fechas1[1] as HTMLInputElement).disabled).toBe(false)
r1.unmount()
// Admin: todas editables
const r2 = render(
<TablaCaptura
unidades={UNIDADES}
campos={camposEmparejados}
datos={datosConFecha}
onGuardar={vi.fn()}
guardando={false}
puedeEditarFechas
/>,
)
const fechas2 = r2.container.querySelectorAll('input[type="date"]')
expect((fechas2[0] as HTMLInputElement).disabled).toBe(false)
expect((fechas2[1] as HTMLInputElement).disabled).toBe(false)
})
})