fix(mi-dia): dedup capturas que ya aparecen en leads/oportunidades
Cuando un lead se crea con Monday activo, aparece tanto en el tablero Monday (misLeads) como en LeadCaptura (misCapturas). Filtrar de 'misCapturas' los items cuyo leadId ya existe en misLeads/misOportunidades para evitar el duplicado visual que reportan los vendedores. 597 tests verdes.
This commit is contained in:
@@ -372,7 +372,7 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => {
|
||||
}
|
||||
})
|
||||
|
||||
it('mis capturas: enriquecidas con la etapa/origen actual de la oportunidad en Monday', async () => {
|
||||
it('mis capturas: items en misLeads/misOportunidades no se duplican en misCapturas', async () => {
|
||||
const monday = mondayMock({
|
||||
oportunidades: [oportunidad({ id: '100', nombre: 'Ana López', etapa: 'Contactado', origen: 'WhatsApp', asesorIds: [OTRO_ID] })],
|
||||
})
|
||||
@@ -380,20 +380,11 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => {
|
||||
{ leadId: '100', nombreLead: 'Ana López', telefono: '6641112233', createdAt: new Date('2026-08-27T09:00:00Z') },
|
||||
]
|
||||
const r = await resumenMiDia(monday, vendedor, new Map(), capturas, [], AHORA)
|
||||
// Aunque la afluencia quedó asignada a OTRO por round-robin, la captura es mía
|
||||
expect(r.misCapturas).toEqual([
|
||||
{
|
||||
leadId: '100',
|
||||
nombre: 'Ana López',
|
||||
telefono: '6641112233',
|
||||
estado: 'Contactado',
|
||||
origen: 'WhatsApp',
|
||||
capturadoEn: '2026-08-27T09:00:00.000Z',
|
||||
},
|
||||
])
|
||||
// La captura ya aparece en misLeads (via esMio → idsCapturados), asi que no se duplica
|
||||
expect(r.misCapturas).toEqual([])
|
||||
})
|
||||
|
||||
it('mis capturas: capturas rápidas cruzan contra el tablero Leads por id', async () => {
|
||||
it('mis capturas: captura rapida no se duplica si ya esta en misLeads', async () => {
|
||||
const monday = mondayMock({
|
||||
leads: [lead({ id: 'lead-9', nombre: 'Pepe Rápido', estado: 'Contactado', origen: 'Web', vendedorIds: [OTRO_ID] })],
|
||||
})
|
||||
@@ -401,16 +392,8 @@ describe('resumenMiDia (GET /api/mi-dia/resumen)', () => {
|
||||
{ leadId: 'lead-9', nombreLead: 'Pepe Rápido', telefono: '4771112233', createdAt: new Date('2026-08-27T09:00:00Z') },
|
||||
]
|
||||
const r = await resumenMiDia(monday, vendedor, new Map(), capturas, [], AHORA)
|
||||
expect(r.misCapturas).toEqual([
|
||||
{
|
||||
leadId: 'lead-9',
|
||||
nombre: 'Pepe Rápido',
|
||||
telefono: '4771112233',
|
||||
estado: 'Contactado',
|
||||
origen: 'Web',
|
||||
capturadoEn: '2026-08-27T09:00:00.000Z',
|
||||
},
|
||||
])
|
||||
// La captura ya aparece en misLeads (via esMio → idsCapturados), asi que no se duplica
|
||||
expect(r.misCapturas).toEqual([])
|
||||
})
|
||||
|
||||
it('mis capturas: si el item ya no existe en ningún tablero, estado y origen van vacíos', async () => {
|
||||
|
||||
Reference in New Issue
Block a user