diff --git a/server/src/__tests__/issue-update-comment-wakeup-routes.test.ts b/server/src/__tests__/issue-update-comment-wakeup-routes.test.ts index ee6fdcada94..abb7b0c7c08 100644 --- a/server/src/__tests__/issue-update-comment-wakeup-routes.test.ts +++ b/server/src/__tests__/issue-update-comment-wakeup-routes.test.ts @@ -1,6 +1,6 @@ import express from "express"; import request from "supertest"; -import { beforeEach, describe, expect, it, vi } from "vitest"; +import { beforeAll, beforeEach, describe, expect, it, vi } from "vitest"; vi.mock("../services/fast-responses.js", () => ({ enqueueFastResponse: vi.fn(async () => undefined), @@ -134,6 +134,13 @@ vi.mock("../services/index.js", () => ({ })); function registerModuleMocks() { + vi.doMock("../services/external-objects.js", () => ({ + externalObjectService: () => ({ + syncCommentSafely: vi.fn(async () => undefined), + syncIssueSafely: vi.fn(async () => undefined), + }), + })); + vi.doMock("../services/index.js", () => ({ companyService: () => ({ getById: vi.fn(async () => ({ id: "company-1" })), @@ -205,12 +212,16 @@ function registerModuleMocks() { })); } -async function createApp(transaction: (callback: (tx: Record) => Promise) => Promise = - async (callback) => callback({})) { - const [{ errorHandler }, { issueRoutes }] = await Promise.all([ +async function loadAppModules() { + return Promise.all([ vi.importActual("../middleware/index.js"), vi.importActual("../routes/issues.js"), ]); +} + +async function createApp(transaction: (callback: (tx: Record) => Promise) => Promise = + async (callback) => callback({})) { + const [{ errorHandler }, { issueRoutes }] = await loadAppModules(); const app = express(); app.use(express.json()); app.use((req, _res, next) => { @@ -253,13 +264,17 @@ function makeIssue(overrides: Record = {}) { } describe("issue update comment wakeups", () => { - beforeEach(() => { + beforeAll(async () => { vi.resetModules(); vi.doUnmock("../routes/issues.js"); vi.doUnmock("../routes/authz.js"); vi.doUnmock("../middleware/index.js"); registerModuleMocks(); - vi.clearAllMocks(); + await loadAppModules(); + }); + + beforeEach(() => { + vi.resetAllMocks(); mockAccessDecide.mockImplementation(async (input) => ({ allowed: true, action: input.action, reason: "allow_explicit_grant", explanation: "Allowed by test grant." })); mockPauseGate.mockResolvedValue(null); mockIssueService.findMentionedAgents.mockResolvedValue([]);