From 5d832c9601787c637428d20f46fce8ffd30b9877 Mon Sep 17 00:00:00 2001 From: syntaxbullet Date: Wed, 18 Mar 2026 13:37:31 +0100 Subject: [PATCH] fix: update trivia test to mock events instead of dashboardService The trivia service now emits domain events via systemEvents instead of directly calling dashboardService.recordEvent. Updated the test mock and assertions to match. Co-Authored-By: Claude Opus 4.6 (1M context) --- shared/modules/trivia/trivia.service.test.ts | 25 ++++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/shared/modules/trivia/trivia.service.test.ts b/shared/modules/trivia/trivia.service.test.ts index 2abc94c..14252dd 100644 --- a/shared/modules/trivia/trivia.service.test.ts +++ b/shared/modules/trivia/trivia.service.test.ts @@ -14,8 +14,6 @@ const mockReturning = mock(); const mockSet = mock(); const mockWhere = mock(); const mockOnConflictDoUpdate = mock(); -const mockRecordEvent = mock(() => Promise.resolve()); - // Chain setup mockInsert.mockReturnValue({ values: mockValues }); mockValues.mockReturnValue({ @@ -69,10 +67,17 @@ mock.module("@shared/lib/config", () => ({ } })); -// Mock Dashboard Service -mock.module("@shared/modules/dashboard/dashboard.service", () => ({ - dashboardService: { - recordEvent: mockRecordEvent +// Mock Events (trivia service emits domain events instead of calling dashboardService directly) +const mockEmit = mock(() => true); +mock.module("@shared/lib/events", () => ({ + systemEvents: { + emit: mockEmit, + }, + EVENTS: { + DOMAIN: { + TRIVIA_STARTED: "domain:trivia_started", + TRIVIA_WON: "domain:trivia_won", + } } })); @@ -109,7 +114,7 @@ describe("TriviaService", () => { mockSet.mockClear(); mockWhere.mockClear(); mockOnConflictDoUpdate.mockClear(); - mockRecordEvent.mockClear(); + mockEmit.mockClear(); // Clear active sessions (triviaService as any).activeSessions.clear(); }); @@ -176,8 +181,8 @@ describe("TriviaService", () => { expect(mockInsert).toHaveBeenCalledWith(userTimers); expect(mockOnConflictDoUpdate).toHaveBeenCalled(); - // Check dashboard event - expect(mockRecordEvent).toHaveBeenCalled(); + // Check domain event emitted + expect(mockEmit).toHaveBeenCalled(); }); it("should throw error if user has insufficient balance", async () => { @@ -219,7 +224,7 @@ describe("TriviaService", () => { // Verify balance update expect(mockUpdate).toHaveBeenCalledWith(users); expect(mockInsert).toHaveBeenCalledWith(transactions); - expect(mockRecordEvent).toHaveBeenCalled(); + expect(mockEmit).toHaveBeenCalled(); }); it("should not award prize for incorrect answer", async () => {