mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
ci: enhance GraphApiService tests with MongoDB in-memory server
- Updated test setup to use MongoDB in-memory server for isolated testing. - Refactored beforeEach to beforeAll for database connection management. - Cleared database before each test to ensure a clean state. - Retained existing mocks while improving test structure for better clarity.
This commit is contained in:
parent
718af1ada1
commit
dbb234d3bf
1 changed files with 20 additions and 14 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
// Mock all dependencies before importing anything
|
|
||||||
jest.mock('@microsoft/microsoft-graph-client');
|
jest.mock('@microsoft/microsoft-graph-client');
|
||||||
jest.mock('~/strategies/openidStrategy');
|
jest.mock('~/strategies/openidStrategy');
|
||||||
jest.mock('~/cache/getLogStores');
|
jest.mock('~/cache/getLogStores');
|
||||||
|
|
@ -16,32 +15,39 @@ jest.mock('~/utils', () => ({
|
||||||
logAxiosError: jest.fn(),
|
logAxiosError: jest.fn(),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Mock deeper dependencies to prevent loading entire dependency tree
|
|
||||||
jest.mock('~/server/services/Config', () => ({}));
|
jest.mock('~/server/services/Config', () => ({}));
|
||||||
jest.mock('~/server/services/Files/strategies', () => ({
|
jest.mock('~/server/services/Files/strategies', () => ({
|
||||||
getStrategyFunctions: jest.fn(),
|
getStrategyFunctions: jest.fn(),
|
||||||
}));
|
}));
|
||||||
jest.mock('~/models', () => ({
|
|
||||||
User: {},
|
|
||||||
Group: {},
|
|
||||||
updateUser: jest.fn(),
|
|
||||||
findUser: jest.fn(),
|
|
||||||
createUser: jest.fn(),
|
|
||||||
}));
|
|
||||||
|
|
||||||
const GraphApiService = require('./GraphApiService');
|
const mongoose = require('mongoose');
|
||||||
const { Client } = require('@microsoft/microsoft-graph-client');
|
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
|
||||||
const { getOpenIdConfig } = require('~/strategies/openidStrategy');
|
|
||||||
const client = require('openid-client');
|
const client = require('openid-client');
|
||||||
|
const { MongoMemoryServer } = require('mongodb-memory-server');
|
||||||
|
const { Client } = require('@microsoft/microsoft-graph-client');
|
||||||
|
const { getOpenIdConfig } = require('~/strategies/openidStrategy');
|
||||||
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
|
const GraphApiService = require('./GraphApiService');
|
||||||
|
|
||||||
describe('GraphApiService', () => {
|
describe('GraphApiService', () => {
|
||||||
|
let mongoServer;
|
||||||
let mockGraphClient;
|
let mockGraphClient;
|
||||||
let mockTokensCache;
|
let mockTokensCache;
|
||||||
let mockOpenIdConfig;
|
let mockOpenIdConfig;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeAll(async () => {
|
||||||
|
mongoServer = await MongoMemoryServer.create();
|
||||||
|
const mongoUri = mongoServer.getUri();
|
||||||
|
await mongoose.connect(mongoUri);
|
||||||
|
});
|
||||||
|
|
||||||
|
afterAll(async () => {
|
||||||
|
await mongoose.disconnect();
|
||||||
|
await mongoServer.stop();
|
||||||
|
});
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
jest.clearAllMocks();
|
jest.clearAllMocks();
|
||||||
|
await mongoose.connection.dropDatabase();
|
||||||
|
|
||||||
// Mock Graph client
|
// Mock Graph client
|
||||||
mockGraphClient = {
|
mockGraphClient = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue