Skip to main content
Glama
config.test.ts3.5 kB
// Set up environment before importing config module process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; process.env.SIMPLIFIER_TOKEN = 'test-token'; // Clear credentials file if it exists in the environment delete process.env.SIMPLIFIER_CREDENTIALS_FILE; // Don't use the global mock for this test jest.unmock('../src/config'); import { validateConfig } from '../src/config'; describe('Configuration', () => { const originalEnv = process.env; beforeEach(() => { jest.resetModules(); process.env = { ...originalEnv }; // Set required environment variables for tests process.env.SIMPLIFIER_TOKEN = 'test-token'; }); afterAll(() => { process.env = originalEnv; }); describe('validateConfig', () => { it('should validate required SIMPLIFIER_BASE_URL', () => { delete process.env.SIMPLIFIER_BASE_URL; expect(() => validateConfig()).toThrow( 'SIMPLIFIER_BASE_URL environment variable is required' ); }); it('should validate SIMPLIFIER_BASE_URL format', () => { process.env.SIMPLIFIER_BASE_URL = 'not-a-url'; expect(() => validateConfig()).toThrow( 'SIMPLIFIER_BASE_URL must be a valid URL' ); }); it('should accept valid HTTP URL', () => { process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; const config = validateConfig(); expect(config.simplifierBaseUrl).toBe('http://localhost:8080'); }); it('should accept valid HTTPS URL', () => { process.env.SIMPLIFIER_BASE_URL = 'https://example.com/api'; process.env.NODE_ENV = 'production'; const config = validateConfig(); expect(config.simplifierBaseUrl).toBe('https://example.com/api'); }); it('should require either SIMPLIFIER_TOKEN or SIMPLIFIER_CREDENTIALS_FILE', () => { process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; delete process.env.SIMPLIFIER_TOKEN; delete process.env.SIMPLIFIER_CREDENTIALS_FILE; expect(() => validateConfig()).toThrow( 'Either variable SIMPLIFIER_TOKEN with an actual token or SIMPLIFIER_CREDENTIALS_FILE pointing to a valid credentials file must be set!' ); }); it('should accept SIMPLIFIER_TOKEN when set', () => { process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; process.env.SIMPLIFIER_TOKEN = 'test-token-123'; delete process.env.SIMPLIFIER_CREDENTIALS_FILE; const config = validateConfig(); expect(config.simplifierToken).toBe('test-token-123'); expect(config.credentialsFile).toBeUndefined(); }); it('should accept SIMPLIFIER_CREDENTIALS_FILE when set', () => { process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; delete process.env.SIMPLIFIER_TOKEN; process.env.SIMPLIFIER_CREDENTIALS_FILE = '/path/to/credentials.json'; const config = validateConfig(); expect(config.credentialsFile).toBe('/path/to/credentials.json'); expect(config.simplifierToken).toBeUndefined(); }); it('should reject when both SIMPLIFIER_TOKEN and SIMPLIFIER_CREDENTIALS_FILE are set', () => { process.env.SIMPLIFIER_BASE_URL = 'http://localhost:8080'; process.env.SIMPLIFIER_TOKEN = 'test-token-123'; process.env.SIMPLIFIER_CREDENTIALS_FILE = '/path/to/credentials.json'; expect(() => validateConfig()).toThrow( 'Cannot set both SIMPLIFIER_TOKEN and SIMPLIFIER_CREDENTIALS_FILE. Please use only one authentication method.' ); }); }); });

Latest Blog Posts

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/SimplifierIO/simplifier-mcp'

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