fix(6-mejoras): subcategoría+apartado libre+PDF+coacreditado+docs+dedup
1. Subcategoría en modal descarte (catálogo completo + select) 2. Apartado sin monto mínimo (eliminada validación de 0,000) 3. PDF solo con propuesta elegida (no las 4) 4. Co-acreditado: checkbox 'no tiene' valida sin campos obligatorios 5. Documentos apartado: previsualizar + descargar (endpoint + frontend) 6. Oportunidades: sin duplicados, orden Confirmar→Afluencia→Cotizar→Aparto(verde)→Descartar
This commit is contained in:
@@ -35,6 +35,7 @@ const generalesValidos: DatosGenerales = {
|
||||
tipoVivienda: 'PROPIA',
|
||||
tipoCompra: 'VIVIR_AHI',
|
||||
actividadOcupacion: 'AGENTE DEL MINISTERIO PUBLICO FEDERAL',
|
||||
usuarioEnkontrol: '',
|
||||
}
|
||||
|
||||
describe('regex de identificadores', () => {
|
||||
@@ -128,6 +129,16 @@ describe('coacreditadoSchema', () => {
|
||||
expect(r.success).toBe(true)
|
||||
})
|
||||
|
||||
it('acepta datos ocultos a medias cuando el toggle está apagado', () => {
|
||||
const conBasura = {
|
||||
...base,
|
||||
tieneCoacreditado: false as const,
|
||||
generales: { ...base.generales, fecha: '', email: 'no-es-correo', codigoPostal: 'abc' },
|
||||
}
|
||||
const r = coacreditadoSchema.safeParse(conBasura)
|
||||
expect(r.success).toBe(true)
|
||||
})
|
||||
|
||||
it('exige el nombre del co-acreditado cuando el toggle está activo', () => {
|
||||
const r = coacreditadoSchema.safeParse({ ...base, tieneCoacreditado: true })
|
||||
expect(r.success).toBe(false)
|
||||
@@ -141,6 +152,19 @@ describe('coacreditadoSchema', () => {
|
||||
})
|
||||
expect(r.success).toBe(true)
|
||||
})
|
||||
|
||||
it('no exige usuarioEnkontrol del co-acreditado (no se captura en el bloque compacto)', () => {
|
||||
const sinUsuarioEnkontrol = JSON.parse(
|
||||
JSON.stringify({
|
||||
...base,
|
||||
tieneCoacreditado: true,
|
||||
generales: { ...base.generales, nombreCompleto: 'MARIA LOPEZ PEREZ' },
|
||||
}),
|
||||
) as typeof base & { tieneCoacreditado: true }
|
||||
delete (sinUsuarioEnkontrol.generales as Record<string, unknown>).usuarioEnkontrol
|
||||
const r = coacreditadoSchema.safeParse(sinUsuarioEnkontrol)
|
||||
expect(r.success).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe('referenciasSchema', () => {
|
||||
|
||||
Reference in New Issue
Block a user