From e0fd6ece54f2e813535190568746d635fd49053f Mon Sep 17 00:00:00 2001 From: Rob Colbert Date: Tue, 19 May 2026 16:32:58 -0400 Subject: [PATCH] fix: remove syncIndexes from models, mock DB in drone-session tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Removed auto-invoked syncIndexes() blocks from all 11 model files (api-client, api-client-log, csrf-token, drone-monitor, drone-registration, email-log, email-verification, ide-session, user, web-token, web-visit) — no longer needed - Fixed drone-session.test.ts by mocking ChatSession.updateOne(), VectorStoreService.ingestTurn(), and MessageQueue to prevent real DB connections during tests - Removed unused mongoose Types import from drone-session test - All 129 tests now pass across all packages --- gadget-code/src/models/api-client-log.ts | 3 --- gadget-code/src/models/api-client.ts | 3 --- gadget-code/src/models/csrf-token.ts | 3 --- gadget-code/src/models/drone-monitor.ts | 3 --- gadget-code/src/models/drone-registration.ts | 3 --- gadget-code/src/models/email-log.ts | 3 --- gadget-code/src/models/email-verification.ts | 3 --- gadget-code/src/models/ide-session.ts | 3 --- gadget-code/src/models/user.ts | 3 --- gadget-code/src/models/web-token.ts | 3 --- gadget-code/src/models/web-visit.ts | 3 --- gadget-code/tests/drone-session.test.ts | 25 +++++++++++++++++++- 12 files changed, 24 insertions(+), 34 deletions(-) diff --git a/gadget-code/src/models/api-client-log.ts b/gadget-code/src/models/api-client-log.ts index 96cc1eb..708f20d 100644 --- a/gadget-code/src/models/api-client-log.ts +++ b/gadget-code/src/models/api-client-log.ts @@ -35,6 +35,3 @@ export const ApiClientLog = model( ); export default ApiClientLog; -(async () => { - await ApiClientLog.syncIndexes(); -})(); diff --git a/gadget-code/src/models/api-client.ts b/gadget-code/src/models/api-client.ts index 304f4ca..282a9e8 100644 --- a/gadget-code/src/models/api-client.ts +++ b/gadget-code/src/models/api-client.ts @@ -55,6 +55,3 @@ const ApiClientSchema = new Schema({ export const ApiClient = model("ApiClient", ApiClientSchema); export default ApiClient; -(async () => { - await ApiClient.syncIndexes(); -})(); diff --git a/gadget-code/src/models/csrf-token.ts b/gadget-code/src/models/csrf-token.ts index e3e40b5..5690cc3 100644 --- a/gadget-code/src/models/csrf-token.ts +++ b/gadget-code/src/models/csrf-token.ts @@ -41,6 +41,3 @@ const CsrfTokenSchema = new Schema({ export const CsrfToken = model("CsrfToken", CsrfTokenSchema); export default CsrfToken; -(async () => { - await CsrfToken.syncIndexes(); -})(); diff --git a/gadget-code/src/models/drone-monitor.ts b/gadget-code/src/models/drone-monitor.ts index b986459..5775d23 100644 --- a/gadget-code/src/models/drone-monitor.ts +++ b/gadget-code/src/models/drone-monitor.ts @@ -41,6 +41,3 @@ export const DroneMonitor = model( ); export default DroneMonitor; -(async () => { - await DroneMonitor.syncIndexes(); -})(); diff --git a/gadget-code/src/models/drone-registration.ts b/gadget-code/src/models/drone-registration.ts index 1bcad9e..6f90500 100644 --- a/gadget-code/src/models/drone-registration.ts +++ b/gadget-code/src/models/drone-registration.ts @@ -34,6 +34,3 @@ export const DroneRegistration = model( ); export default DroneRegistration; -(async () => { - await DroneRegistration.syncIndexes(); -})(); diff --git a/gadget-code/src/models/email-log.ts b/gadget-code/src/models/email-log.ts index 50e570d..740d4b4 100644 --- a/gadget-code/src/models/email-log.ts +++ b/gadget-code/src/models/email-log.ts @@ -29,6 +29,3 @@ export const EmailLogSchema = new Schema({ export const EmailLog = model("EmailLog", EmailLogSchema); export default EmailLog; -(async () => { - await EmailLog.syncIndexes(); -})(); diff --git a/gadget-code/src/models/email-verification.ts b/gadget-code/src/models/email-verification.ts index 4eaa878..2e4d48e 100644 --- a/gadget-code/src/models/email-verification.ts +++ b/gadget-code/src/models/email-verification.ts @@ -38,6 +38,3 @@ export const EmailVerification = model( ); export default EmailVerification; -(async () => { - await EmailVerification.syncIndexes(); -})(); diff --git a/gadget-code/src/models/ide-session.ts b/gadget-code/src/models/ide-session.ts index 05e4cce..736a5c0 100644 --- a/gadget-code/src/models/ide-session.ts +++ b/gadget-code/src/models/ide-session.ts @@ -21,6 +21,3 @@ IdeSessionSchema.index({ export const IdeSession = model("IdeSession", IdeSessionSchema); export default IdeSession; -(async () => { - await IdeSession.syncIndexes(); -})(); diff --git a/gadget-code/src/models/user.ts b/gadget-code/src/models/user.ts index ef8c061..d278a6b 100644 --- a/gadget-code/src/models/user.ts +++ b/gadget-code/src/models/user.ts @@ -31,6 +31,3 @@ export const UserSchema = new Schema({ export const User = model("User", UserSchema); export default User; -(async () => { - await User.syncIndexes(); -})(); diff --git a/gadget-code/src/models/web-token.ts b/gadget-code/src/models/web-token.ts index 4ccf690..98eb2c3 100644 --- a/gadget-code/src/models/web-token.ts +++ b/gadget-code/src/models/web-token.ts @@ -26,6 +26,3 @@ export const WebTokenSchema = new Schema({ export const WebToken = model("WebToken", WebTokenSchema); export default WebToken; -(async () => { - await WebToken.syncIndexes(); -})(); diff --git a/gadget-code/src/models/web-visit.ts b/gadget-code/src/models/web-visit.ts index 5a7b520..6848f05 100644 --- a/gadget-code/src/models/web-visit.ts +++ b/gadget-code/src/models/web-visit.ts @@ -43,6 +43,3 @@ export const WebVisitSchema = new Schema({ }); export const WebVisit = model("WebVisit", WebVisitSchema); -(async () => { - await WebVisit.syncIndexes(); -})(); diff --git a/gadget-code/tests/drone-session.test.ts b/gadget-code/tests/drone-session.test.ts index 189d8cd..3942944 100644 --- a/gadget-code/tests/drone-session.test.ts +++ b/gadget-code/tests/drone-session.test.ts @@ -1,5 +1,4 @@ import { describe, it, expect, beforeEach, vi } from "vitest"; -import { Types } from "mongoose"; import { DroneSession } from "../src/lib/drone-session"; import { IDroneRegistration, @@ -14,6 +13,27 @@ import { nanoid } from "nanoid"; // Mock dependencies vi.mock("../src/services/socket"); vi.mock("../src/models/chat-turn"); +vi.mock("../src/models/chat-session", () => ({ + default: { + updateOne: vi.fn().mockResolvedValue({ acknowledged: true, modifiedCount: 1 }), + }, +})); +vi.mock("../src/services/index.js", async (importOriginal) => { + const actual = await importOriginal() as any; + return { + ...actual, + SocketService: actual.SocketService, + VectorStoreService: { + ingestTurn: vi.fn().mockResolvedValue(undefined), + }, + }; +}); +vi.mock("../src/lib/message-queue.js", () => ({ + default: { + enqueue: vi.fn().mockResolvedValue(undefined), + drain: vi.fn().mockResolvedValue([]), + }, +})); describe("DroneSession", () => { let mockSocket: any; @@ -220,6 +240,7 @@ describe("DroneSession", () => { }; const mockTurn = { status: ChatTurnStatus.Processing, + toolCalls: [], save: vi.fn().mockResolvedValue(undefined), }; vi.mocked(SocketService.getCodeSessionByChatSessionId).mockReturnValue( @@ -238,6 +259,7 @@ describe("DroneSession", () => { mockTurnId, true, undefined, + undefined, ); expect(droneSession.currentTurnId).toBeUndefined(); }); @@ -250,6 +272,7 @@ describe("DroneSession", () => { const mockTurn = { status: ChatTurnStatus.Processing, errorMessage: "", + toolCalls: [], save: vi.fn().mockResolvedValue(undefined), }; vi.mocked(SocketService.getCodeSessionByChatSessionId).mockReturnValue(