Skip to main content
Glama

1MCP Server

configContext.test.ts4.86 kB
import { getConfigPath } from '@src/constants.js'; import { afterEach, beforeEach, describe, expect, it } from 'vitest'; import ConfigContext from './configContext.js'; describe('ConfigContext', () => { let configContext: ConfigContext; beforeEach(() => { configContext = ConfigContext.getInstance(); configContext.reset(); // Ensure clean state for each test }); afterEach(() => { configContext.reset(); // Clean up after each test }); describe('Singleton pattern', () => { it('should return the same instance', () => { const instance1 = ConfigContext.getInstance(); const instance2 = ConfigContext.getInstance(); expect(instance1).toBe(instance2); }); }); describe('setConfigPath', () => { it('should set config path correctly', () => { const testPath = '/test/config.json'; configContext.setConfigPath(testPath); expect(configContext.getResolvedConfigPath()).toBe(testPath); }); it('should handle undefined config path', () => { configContext.setConfigPath(undefined); // Should fall back to default config path expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should override previously set config directory', () => { configContext.setConfigDir('/test/dir'); configContext.setConfigPath('/override/config.json'); expect(configContext.getResolvedConfigPath()).toBe('/override/config.json'); }); }); describe('setConfigDir', () => { it('should set config directory correctly', () => { const testDir = '/test/dir'; configContext.setConfigDir(testDir); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath(testDir)); }); it('should handle undefined config directory', () => { configContext.setConfigDir(undefined); // Should fall back to default config path expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should override previously set config path', () => { configContext.setConfigPath('/override/config.json'); configContext.setConfigDir('/test/dir'); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath('/test/dir')); }); }); describe('getResolvedConfigPath', () => { it('should return config path when set', () => { const testPath = '/test/config.json'; configContext.setConfigPath(testPath); expect(configContext.getResolvedConfigPath()).toBe(testPath); }); it('should return config path from directory when directory is set', () => { const testDir = '/test/dir'; configContext.setConfigDir(testDir); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath(testDir)); }); it('should return default config path when nothing is set', () => { expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should prioritize config path over config directory', () => { const testPath = '/test/config.json'; const testDir = '/test/dir'; configContext.setConfigDir(testDir); configContext.setConfigPath(testPath); expect(configContext.getResolvedConfigPath()).toBe(testPath); }); }); describe('reset', () => { it('should clear all configuration', () => { configContext.setConfigPath('/test/config.json'); configContext.setConfigDir('/test/dir'); configContext.reset(); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should work when nothing was set', () => { configContext.reset(); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); }); describe('edge cases', () => { it('should handle empty string config path', () => { configContext.setConfigPath(''); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should handle empty string config directory', () => { configContext.setConfigDir(''); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should handle multiple resets', () => { configContext.setConfigPath('/test/config.json'); configContext.reset(); configContext.reset(); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath()); }); it('should handle alternating between path and directory', () => { const testPath = '/test/config.json'; const testDir = '/test/dir'; configContext.setConfigPath(testPath); expect(configContext.getResolvedConfigPath()).toBe(testPath); configContext.setConfigDir(testDir); expect(configContext.getResolvedConfigPath()).toBe(getConfigPath(testDir)); configContext.setConfigPath(testPath); expect(configContext.getResolvedConfigPath()).toBe(testPath); }); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/1mcp-app/agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server