From 76dc1aef5ae209bda2d478dd61dfb1780eccbe74 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Wed, 22 Jul 2026 10:18:34 -0400 Subject: [PATCH] test: mock Schedules service in UserController specs (CI shard fix) UserController now requires ~/server/services/Schedules for quiesceUserSchedules; that pulls the real service chain into UserController specs that mock a partial data-provider (missing ViolationTypes), failing 'api' shards 2/3 at load. Mock the service in the four UserController specs that lacked it, matching deleteUser.spec. --- api/server/controllers/UserController.spec.js | 4 ++++ .../controllers/__tests__/UserController.mcpOAuth.spec.js | 4 ++++ api/server/controllers/__tests__/deleteUserMcpServers.spec.js | 4 ++++ .../controllers/__tests__/maybeUninstallOAuthMCP.spec.js | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/api/server/controllers/UserController.spec.js b/api/server/controllers/UserController.spec.js index ed8fc9f29b..6e640e9d22 100644 --- a/api/server/controllers/UserController.spec.js +++ b/api/server/controllers/UserController.spec.js @@ -1,6 +1,10 @@ const mongoose = require('mongoose'); const { MongoMemoryServer } = require('mongodb-memory-server'); +jest.mock('~/server/services/Schedules', () => ({ + quiesceUserSchedules: jest.fn().mockResolvedValue(undefined), +})); + jest.mock('@librechat/data-schemas', () => { const actual = jest.requireActual('@librechat/data-schemas'); return { diff --git a/api/server/controllers/__tests__/UserController.mcpOAuth.spec.js b/api/server/controllers/__tests__/UserController.mcpOAuth.spec.js index d8c43b5fc4..87c614dd1e 100644 --- a/api/server/controllers/__tests__/UserController.mcpOAuth.spec.js +++ b/api/server/controllers/__tests__/UserController.mcpOAuth.spec.js @@ -8,6 +8,10 @@ const mockGetMCPManager = jest.fn(); const mockGetFlowStateManager = jest.fn(); const mockGetMCPServersRegistry = jest.fn(); +jest.mock('~/server/services/Schedules', () => ({ + quiesceUserSchedules: jest.fn().mockResolvedValue(undefined), +})); + jest.mock('@librechat/data-schemas', () => ({ logger: { error: jest.fn(), info: jest.fn(), warn: jest.fn() }, getTenantId: jest.fn(), diff --git a/api/server/controllers/__tests__/deleteUserMcpServers.spec.js b/api/server/controllers/__tests__/deleteUserMcpServers.spec.js index fcb3211f24..3feedf465b 100644 --- a/api/server/controllers/__tests__/deleteUserMcpServers.spec.js +++ b/api/server/controllers/__tests__/deleteUserMcpServers.spec.js @@ -1,6 +1,10 @@ const mockGetMCPManager = jest.fn(); const mockInvalidateCachedTools = jest.fn(); +jest.mock('~/server/services/Schedules', () => ({ + quiesceUserSchedules: jest.fn().mockResolvedValue(undefined), +})); + jest.mock('~/config', () => ({ getMCPManager: (...args) => mockGetMCPManager(...args), getFlowStateManager: jest.fn(), diff --git a/api/server/controllers/__tests__/maybeUninstallOAuthMCP.spec.js b/api/server/controllers/__tests__/maybeUninstallOAuthMCP.spec.js index 1b8436233a..83e24e879e 100644 --- a/api/server/controllers/__tests__/maybeUninstallOAuthMCP.spec.js +++ b/api/server/controllers/__tests__/maybeUninstallOAuthMCP.spec.js @@ -15,6 +15,10 @@ const mockLoggerWarn = jest.fn(); const mockLoggerError = jest.fn(); const mockGetTenantId = jest.fn(); +jest.mock('~/server/services/Schedules', () => ({ + quiesceUserSchedules: jest.fn().mockResolvedValue(undefined), +})); + jest.mock('@librechat/data-schemas', () => ({ logger: { info: mockLoggerInfo, warn: mockLoggerWarn, error: mockLoggerError }, getTenantId: (...args) => mockGetTenantId(...args),