diff --git a/server/src/__tests__/agent-skills-routes.test.ts b/server/src/__tests__/agent-skills-routes.test.ts index fc059ad67b..1a4166d834 100644 --- a/server/src/__tests__/agent-skills-routes.test.ts +++ b/server/src/__tests__/agent-skills-routes.test.ts @@ -177,11 +177,15 @@ function createDb(requireBoardApprovalForNewAgents = false) { }; } -async function createApp(db: Record = createDb()) { - const [{ agentRoutes }, { errorHandler }] = await Promise.all([ +function loadAppModules() { + return Promise.all([ vi.importActual("../routes/agents.js"), vi.importActual("../middleware/index.js"), ]); +} + +async function createApp(db: Record = createDb()) { + const [{ agentRoutes }, { errorHandler }] = await loadAppModules(); const app = express(); app.use(express.json()); app.use((req, _res, next) => { @@ -246,7 +250,7 @@ function makeAgent(adapterType: string) { } describe.sequential("agent skill routes", () => { - beforeEach(() => { + beforeEach(async () => { vi.resetModules(); vi.doUnmock("../routes/agents.js"); vi.doUnmock("../routes/authz.js"); @@ -369,7 +373,9 @@ describe.sequential("agent skill routes", () => { mockAccessService.listPrincipalGrants.mockResolvedValue([]); mockAccessService.ensureMembership.mockResolvedValue(undefined); mockAccessService.setPrincipalPermission.mockResolvedValue(undefined); - }); + // Keep cold route imports in setup rather than the HTTP assertion timeout. + await loadAppModules(); + }, 60_000); it("skips runtime materialization when listing Claude skills", async () => { mockAgentService.getById.mockResolvedValue(makeAgent("claude_local"));