Skip to main content
Glama
config-loading.test.js3.43 kB
// Vitest globals enabled describe("Configuration Loading", () => { let ServerConfiguration; beforeEach(async () => { // Dynamic import const configModule = await import("../dist/config/ServerConfiguration.js"); ServerConfiguration = configModule.ServerConfiguration; // Clear environment variables delete process.env.WORDPRESS_SITE_URL; delete process.env.WORDPRESS_USERNAME; delete process.env.WORDPRESS_APP_PASSWORD; }); describe("Environment variable configuration", () => { test("should handle environment variables correctly", () => { // Set environment variables process.env.WORDPRESS_SITE_URL = "https://example.com"; process.env.WORDPRESS_USERNAME = "testuser"; process.env.WORDPRESS_APP_PASSWORD = "testpass"; // Verify they are set expect(process.env.WORDPRESS_SITE_URL).toBe("https://example.com"); expect(process.env.WORDPRESS_USERNAME).toBe("testuser"); expect(process.env.WORDPRESS_APP_PASSWORD).toBe("testpass"); }); test("should support different auth methods via environment", () => { process.env.WORDPRESS_AUTH_METHOD = "app-password"; expect(process.env.WORDPRESS_AUTH_METHOD).toBe("app-password"); process.env.WORDPRESS_AUTH_METHOD = "jwt"; expect(process.env.WORDPRESS_AUTH_METHOD).toBe("jwt"); process.env.WORDPRESS_AUTH_METHOD = "basic"; expect(process.env.WORDPRESS_AUTH_METHOD).toBe("basic"); }); }); describe("Configuration structure validation", () => { test("should validate multi-site config structure", () => { const validConfig = { sites: [ { id: "site1", name: "Test Site 1", config: { WORDPRESS_SITE_URL: "https://site1.example.com", WORDPRESS_USERNAME: "user1", WORDPRESS_APP_PASSWORD: "pass1", }, }, { id: "site2", name: "Test Site 2", config: { WORDPRESS_SITE_URL: "https://site2.example.com", WORDPRESS_USERNAME: "user2", WORDPRESS_APP_PASSWORD: "pass2", }, }, ], }; // Validate structure expect(validConfig.sites).toHaveLength(2); expect(validConfig.sites[0].id).toBe("site1"); expect(validConfig.sites[0].name).toBe("Test Site 1"); expect(validConfig.sites[0].config.WORDPRESS_SITE_URL).toBe("https://site1.example.com"); expect(validConfig.sites[1].id).toBe("site2"); }); test("should detect invalid config structure", () => { const invalidConfig = { sites: [ { // Missing required fields name: "Test Site", }, ], }; // Validate that required fields are missing expect(invalidConfig.sites[0].id).toBeUndefined(); expect(invalidConfig.sites[0].config).toBeUndefined(); }); }); describe("ServerConfiguration class", () => { test("should be a singleton", () => { const instance1 = ServerConfiguration.getInstance(); const instance2 = ServerConfiguration.getInstance(); expect(instance1).toBe(instance2); }); test("should have loadClientConfigurations method", () => { const instance = ServerConfiguration.getInstance(); expect(typeof instance.loadClientConfigurations).toBe("function"); }); }); });

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/docdyhr/mcp-wordpress'

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