mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
refactor: Update MCPServersInitializer tests to use new server management methods
* refactor: Replace direct Redis server manipulation with registry.addServer and registry.getServerConfig for better abstraction and consistency. * test: Adjust integration tests to verify server initialization and stale data handling using the updated methods.
This commit is contained in:
parent
b0eaa1d40f
commit
56b8578174
1 changed files with 28 additions and 22 deletions
|
|
@ -322,13 +322,16 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
expect(await registryStatusCache.isInitialized()).toBe(true);
|
expect(await registryStatusCache.isInitialized()).toBe(true);
|
||||||
|
|
||||||
// Add a stale server directly to Redis to simulate stale data
|
// Add a stale server directly to Redis to simulate stale data
|
||||||
await registry.sharedAppServers.add('stale_server', {
|
await registry.addServer(
|
||||||
type: 'stdio',
|
'stale_server',
|
||||||
command: 'node',
|
{
|
||||||
args: ['stale.js'],
|
type: 'stdio',
|
||||||
requiresOAuth: false,
|
command: 'node',
|
||||||
});
|
args: ['stale.js'],
|
||||||
expect(await registry.sharedAppServers.get('stale_server')).toBeDefined();
|
},
|
||||||
|
'CACHE',
|
||||||
|
);
|
||||||
|
expect(await registry.getServerConfig('stale_server')).toBeDefined();
|
||||||
|
|
||||||
// Simulate app restart by resetting the process flag (but NOT Redis)
|
// Simulate app restart by resetting the process flag (but NOT Redis)
|
||||||
MCPServersInitializer.resetProcessFlag();
|
MCPServersInitializer.resetProcessFlag();
|
||||||
|
|
@ -340,11 +343,11 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
await MCPServersInitializer.initialize(testConfigs);
|
await MCPServersInitializer.initialize(testConfigs);
|
||||||
|
|
||||||
// Stale server should be gone because registry.reset() was called
|
// Stale server should be gone because registry.reset() was called
|
||||||
expect(await registry.sharedAppServers.get('stale_server')).toBeUndefined();
|
expect(await registry.getServerConfig('stale_server')).toBeUndefined();
|
||||||
|
|
||||||
// Real servers should be present
|
// Real servers should be present
|
||||||
expect(await registry.sharedAppServers.get('file_tools_server')).toBeDefined();
|
expect(await registry.getServerConfig('file_tools_server')).toBeDefined();
|
||||||
expect(await registry.sharedUserServers.get('disabled_server')).toBeDefined();
|
expect(await registry.getServerConfig('disabled_server')).toBeDefined();
|
||||||
|
|
||||||
// Inspector should have been called (proving re-initialization happened)
|
// Inspector should have been called (proving re-initialization happened)
|
||||||
expect((MCPServerInspector.inspect as jest.Mock).mock.calls.length).toBeGreaterThan(0);
|
expect((MCPServerInspector.inspect as jest.Mock).mock.calls.length).toBeGreaterThan(0);
|
||||||
|
|
@ -370,15 +373,18 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
await MCPServersInitializer.initialize(testConfigs);
|
await MCPServersInitializer.initialize(testConfigs);
|
||||||
|
|
||||||
// Add stale data that shouldn't exist after next initialization
|
// Add stale data that shouldn't exist after next initialization
|
||||||
await registry.sharedAppServers.add('should_be_removed', {
|
await registry.addServer(
|
||||||
type: 'stdio',
|
'should_be_removed',
|
||||||
command: 'node',
|
{
|
||||||
args: ['old.js'],
|
type: 'stdio',
|
||||||
requiresOAuth: false,
|
command: 'node',
|
||||||
});
|
args: ['old.js'],
|
||||||
|
},
|
||||||
|
'CACHE',
|
||||||
|
);
|
||||||
|
|
||||||
// Verify stale data exists
|
// Verify stale data exists
|
||||||
expect(await registry.sharedAppServers.get('should_be_removed')).toBeDefined();
|
expect(await registry.getServerConfig('should_be_removed')).toBeDefined();
|
||||||
|
|
||||||
// Simulate new process starting (reset process flag)
|
// Simulate new process starting (reset process flag)
|
||||||
MCPServersInitializer.resetProcessFlag();
|
MCPServersInitializer.resetProcessFlag();
|
||||||
|
|
@ -391,11 +397,11 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
await MCPServersInitializer.initialize(reducedConfigs);
|
await MCPServersInitializer.initialize(reducedConfigs);
|
||||||
|
|
||||||
// Stale server from previous config should be gone
|
// Stale server from previous config should be gone
|
||||||
expect(await registry.sharedAppServers.get('should_be_removed')).toBeUndefined();
|
expect(await registry.getServerConfig('should_be_removed')).toBeUndefined();
|
||||||
// Server not in new configs should be gone
|
// Server not in new configs should be gone
|
||||||
expect(await registry.sharedUserServers.get('disabled_server')).toBeUndefined();
|
expect(await registry.getServerConfig('disabled_server')).toBeUndefined();
|
||||||
// Only server in new configs should exist
|
// Only server in new configs should exist
|
||||||
expect(await registry.sharedAppServers.get('file_tools_server')).toBeDefined();
|
expect(await registry.getServerConfig('file_tools_server')).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should work correctly when multiple instances share Redis (leader handles init)', async () => {
|
it('should work correctly when multiple instances share Redis (leader handles init)', async () => {
|
||||||
|
|
@ -406,7 +412,7 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
expect(await registryStatusCache.isInitialized()).toBe(true);
|
expect(await registryStatusCache.isInitialized()).toBe(true);
|
||||||
|
|
||||||
// Verify servers are in Redis
|
// Verify servers are in Redis
|
||||||
const fileToolsServer = await registry.sharedAppServers.get('file_tools_server');
|
const fileToolsServer = await registry.getServerConfig('file_tools_server');
|
||||||
expect(fileToolsServer).toBeDefined();
|
expect(fileToolsServer).toBeDefined();
|
||||||
expect(fileToolsServer?.tools).toBe('file_read, file_write');
|
expect(fileToolsServer?.tools).toBe('file_read, file_write');
|
||||||
|
|
||||||
|
|
@ -419,7 +425,7 @@ describe('MCPServersInitializer Redis Integration Tests', () => {
|
||||||
|
|
||||||
// Redis should still have correct data
|
// Redis should still have correct data
|
||||||
expect(await registryStatusCache.isInitialized()).toBe(true);
|
expect(await registryStatusCache.isInitialized()).toBe(true);
|
||||||
expect(await registry.sharedAppServers.get('file_tools_server')).toBeDefined();
|
expect(await registry.getServerConfig('file_tools_server')).toBeDefined();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue