import { describe, expect, it } from 'vitest' import { esRolConEquipo, funnelMisLeads, type LeadMiDia } from './mi-tablero' function lead(id: string, estado: string): LeadMiDia { return { id, nombre: `Lead ${id}`, telefono: '', email: '', estado, origen: 'Web', updatedAt: '' } } describe('esRolConEquipo', () => { it('coordinador, corporativo y admin ven equipo; vendedor no', () => { expect(esRolConEquipo('coordinador')).toBe(true) expect(esRolConEquipo('corporativo')).toBe(true) expect(esRolConEquipo('admin')).toBe(true) expect(esRolConEquipo('vendedor')).toBe(false) }) }) describe('funnelMisLeads', () => { it('agrupa por estado normalizado y ordena de mayor a menor', () => { const funnel = funnelMisLeads([ lead('1', 'NUEVO'), lead('2', 'nuevo'), lead('3', ' Contactado '), lead('4', 'CITA'), ]) expect(funnel).toEqual([ { etapa: 'NUEVO', valor: 2 }, { etapa: 'CITA', valor: 1 }, { etapa: 'CONTACTADO', valor: 1 }, ]) }) it('lista vacía → funnel vacío; estado vacío → SIN ESTADO', () => { expect(funnelMisLeads([])).toEqual([]) expect(funnelMisLeads([lead('1', ' ')])).toEqual([{ etapa: 'SIN ESTADO', valor: 1 }]) }) })