import { describe, expect, it } from 'vitest' import { esActividadVencida, esRolConEquipo, formatoFechaCorta, hoyLocal, DESARROLLOS_LEAD, MOTIVOS_NO_COMPRA, ORIGENES_LEAD, textoDiasRestantes, } from './mi-dia' describe('catálogos', () => { it('orígenes = labels reales de la columna Origen del board Leads', () => { expect([...ORIGENES_LEAD]).toEqual(['WhatsApp', 'Web', 'Recomendado', 'Facebook', 'Otro']) }) it('desarrollos = labels reales de la columna Desarrollo del board Leads', () => { expect([...DESARROLLOS_LEAD]).toEqual(['ATELIER', 'DIAGONAL', 'ESTANZA', 'SENDA', 'SOLANA']) }) it('motivos de descarte = vocabulario CRM (igual que el API)', () => { expect(MOTIVOS_NO_COMPRA).toContain('Precio') expect(MOTIVOS_NO_COMPRA).toContain('Timing') expect(MOTIVOS_NO_COMPRA).toHaveLength(7) }) }) 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('formatoFechaCorta', () => { it('recorta el año', () => { expect(formatoFechaCorta('2026-08-29')).toBe('29/08') }) it('tolera cadenas mal formadas devolviéndolas tal cual', () => { expect(formatoFechaCorta('sin-fecha')).toBe('sin-fecha') }) }) describe('textoDiasRestantes', () => { it('hoy, mañana y n días', () => { expect(textoDiasRestantes(0)).toBe('Vence hoy') expect(textoDiasRestantes(1)).toBe('Vence mañana') expect(textoDiasRestantes(5)).toBe('Vence en 5 días') }) }) describe('esActividadVencida', () => { it('compara contra la fecha de hoy', () => { expect(esActividadVencida('2026-08-27', '2026-08-28')).toBe(true) expect(esActividadVencida('2026-08-28', '2026-08-28')).toBe(false) expect(esActividadVencida('2026-08-29', '2026-08-28')).toBe(false) expect(esActividadVencida('', '2026-08-28')).toBe(false) }) }) describe('hoyLocal', () => { it('devuelve YYYY-MM-DD', () => { expect(hoyLocal()).toMatch(/^\d{4}-\d{2}-\d{2}$/) }) })