fix(alta): error 400 del servidor ya no se reporta como 'sin conexión'

- API: viviendaCredito.ubicacion ahora opcional (la app web no la exigía;
  el desfase causaba 400 que la app mostraba como fallo de red)
- App: crearAltaCliente distingue conexion/validacion; el 400 muestra
  banner rojo con el detalle de los issues en vez del banner ámbar
- Tests: api 160, alta-clientes 66
This commit is contained in:
2026-08-27 18:51:51 +00:00
parent 5d4293888b
commit 04de7d703f
5 changed files with 95 additions and 22 deletions

View File

@@ -73,3 +73,22 @@ describe('actividadEconomicaLabel', () => {
expect(actividadEconomicaLabel(undefined)).toBeUndefined()
})
})
describe('crearClienteSchema', () => {
const base = {
datosGenerales: { nombreCompleto: 'Cliente Demo', curp: 'CURP123', rfc: 'RFC123' },
viviendaCredito: { proyecto: 'SENDA' },
}
it('acepta un alta sin ubicación (opcional en el formato web)', async () => {
const { crearClienteSchema } = await import('./clientes.controller.js')
expect(() => crearClienteSchema.parse(base)).not.toThrow()
})
it('sigue exigiendo nombre, curp, rfc y proyecto', async () => {
const { crearClienteSchema } = await import('./clientes.controller.js')
expect(() =>
crearClienteSchema.parse({ datosGenerales: { nombreCompleto: '', curp: '', rfc: '' }, viviendaCredito: {} }),
).toThrow()
})
})