Files
FRASA-CAS/apps/alta-clientes/src/lib/leadAlta.test.ts
Consult AS Technology 1692dde887 feat: vínculo con usuario Monday en landing + alta prellenada desde leads
API:
- GET /api/monday/usuarios: usuarios activos no-guest del workspace
- PATCH /api/usuarios/me/monday: vincula/desvincula el mondayUserId del
  usuario autenticado (valida contra el workspace)
- GET /api/leads/buscar?q=: búsqueda de leads por nombre/teléfono/email
  (sin acentos, orden updatedAt desc, límite 15)
- aPublico/me ahora incluyen mondayUserId

Landing (/):
- Nueva sección 'Configuración de cuenta': login inline, selector del
  usuario de Monday, guardar/desvincular, cerrar sesión

Alta de clientes (/client):
- Búsqueda de leads de Monday con debounce en la pantalla de entrada;
  al elegir uno prellena nombre/email/celular y guarda leadMondayId
- El picker (borradores + alta nueva + búsqueda de lead) es ahora
  siempre la pantalla de entrada

Tests: api 294, landing 8, alta-clientes 96 — todos verdes
2026-08-28 18:36:08 +00:00

26 lines
1019 B
TypeScript

import { describe, expect, it } from 'vitest'
import { leadAPrellenado } from './leadAlta'
describe('leadAPrellenado', () => {
it('prellena nombre (mayúsculas), email y celular cuando el lead los trae', () => {
const pre = leadAPrellenado({ nombre: ' María Fernanda López ', email: 'maria@correo.com', telefono: '4771234567' })
expect(pre).toEqual({
nombreCompleto: 'MARÍA FERNANDA LÓPEZ',
email: 'maria@correo.com',
celular: '4771234567',
})
})
it('omite email y celular cuando el lead no los tiene (no inventa datos)', () => {
expect(leadAPrellenado({ nombre: 'Lead Sin Contacto', email: '', telefono: '' })).toEqual({
nombreCompleto: 'LEAD SIN CONTACTO',
})
})
it('prellena solo lo que haya (email sin teléfono)', () => {
const pre = leadAPrellenado({ nombre: 'Solo Email', email: 'solo@correo.com', telefono: '' })
expect(pre).toEqual({ nombreCompleto: 'SOLO EMAIL', email: 'solo@correo.com' })
expect(pre.celular).toBeUndefined()
})
})