fix: corrigir memory leaks e testes de mocks
- Fechar ConvexClient antigo antes de criar novo (evita memory leak) - Adicionar flag disposed para prevenir race condition em useEffect - Reduzir polling SSE de 1s para 5s (balanco entre responsividade e carga) - Adicionar .take() aos mocks de testes para compatibilidade 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
638faeb287
commit
508f915cf9
5 changed files with 39 additions and 6 deletions
|
|
@ -31,6 +31,7 @@ function ticketsChain(collection: Doc<"tickets">[]) {
|
|||
}),
|
||||
order: vi.fn(() => chain),
|
||||
collect: vi.fn(async () => collection),
|
||||
take: vi.fn(async (limit: number) => collection.slice(0, limit)),
|
||||
}
|
||||
return chain
|
||||
}
|
||||
|
|
@ -74,9 +75,11 @@ export function createReportsCtx({
|
|||
cb?.(noopIndexBuilder)
|
||||
return {
|
||||
collect: vi.fn(async () => queues),
|
||||
take: vi.fn(async (limit: number) => queues.slice(0, limit)),
|
||||
}
|
||||
}),
|
||||
collect: vi.fn(async () => queues),
|
||||
take: vi.fn(async (limit: number) => queues.slice(0, limit)),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -86,9 +89,11 @@ export function createReportsCtx({
|
|||
cb?.(noopIndexBuilder)
|
||||
return {
|
||||
collect: vi.fn(async () => categories),
|
||||
take: vi.fn(async (limit: number) => categories.slice(0, limit)),
|
||||
}
|
||||
}),
|
||||
collect: vi.fn(async () => categories),
|
||||
take: vi.fn(async (limit: number) => categories.slice(0, limit)),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -103,8 +108,10 @@ export function createReportsCtx({
|
|||
},
|
||||
}
|
||||
cb?.(builder as { eq: (field: unknown, value: unknown) => unknown })
|
||||
const events = ticketId ? ticketEventsByTicket.get(ticketId) ?? [] : []
|
||||
return {
|
||||
collect: vi.fn(async () => (ticketId ? ticketEventsByTicket.get(ticketId) ?? [] : [])),
|
||||
collect: vi.fn(async () => events),
|
||||
take: vi.fn(async (limit: number) => events.slice(0, limit)),
|
||||
}
|
||||
}),
|
||||
}
|
||||
|
|
@ -121,8 +128,10 @@ export function createReportsCtx({
|
|||
},
|
||||
}
|
||||
cb?.(builder as { eq: (field: unknown, value: unknown) => unknown })
|
||||
const sessions = agentId ? ticketWorkSessionsByAgent.get(agentId) ?? [] : []
|
||||
return {
|
||||
collect: vi.fn(async () => (agentId ? ticketWorkSessionsByAgent.get(agentId) ?? [] : [])),
|
||||
collect: vi.fn(async () => sessions),
|
||||
take: vi.fn(async (limit: number) => sessions.slice(0, limit)),
|
||||
}
|
||||
}),
|
||||
}
|
||||
|
|
@ -131,8 +140,10 @@ export function createReportsCtx({
|
|||
return {
|
||||
withIndex: vi.fn(() => ({
|
||||
collect: vi.fn(async () => []),
|
||||
take: vi.fn(async () => []),
|
||||
})),
|
||||
collect: vi.fn(async () => []),
|
||||
take: vi.fn(async () => []),
|
||||
}
|
||||
}),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue