Skip to main content
Glama
coolify-client.integration.test.ts3.96 kB
import { CoolifyClient } from './coolify-client.js'; // Skip these tests if environment variables are not set const COOLIFY_BASE_URL = process.env.COOLIFY_BASE_URL; const COOLIFY_TOKEN = process.env.COOLIFY_TOKEN; const describeFn = COOLIFY_BASE_URL && COOLIFY_TOKEN ? describe : describe.skip; describeFn('CoolifyClient Integration Tests', () => { let client: CoolifyClient; beforeAll(() => { client = new CoolifyClient(COOLIFY_TOKEN!, COOLIFY_BASE_URL!); }); describe('Version & Health', () => { it('should get version information', async () => { const version = await client.getVersion(); expect(version).toBeDefined(); expect(version.version).toBeTruthy(); expect(typeof version.version).toBe('string'); }); it('should check health status', async () => { const health = await client.checkHealth(); expect(health).toBeDefined(); expect(health.status).toBeTruthy(); expect(health.timestamp).toBeTruthy(); }); }); describe('Teams', () => { it('should list teams', async () => { const teams = await client.listTeams(); expect(Array.isArray(teams)).toBe(true); expect(teams.length).toBeGreaterThan(0); if (teams.length > 0) { const team = teams[0]; expect(team.id).toBeDefined(); expect(team.name).toBeDefined(); expect(typeof team.personal_team).toBe('boolean'); } }); it('should get current team', async () => { const team = await client.getCurrentTeam(); expect(team).toBeDefined(); expect(team.id).toBeDefined(); expect(team.name).toBeDefined(); }); it('should get current team members', async () => { const members = await client.getCurrentTeamMembers(); expect(Array.isArray(members)).toBe(true); expect(members.length).toBeGreaterThan(0); if (members.length > 0) { const member = members[0]; expect(member.id).toBeDefined(); expect(member.name).toBeDefined(); expect(member.email).toBeDefined(); // Note: role field might not be present in all versions } }); }); describe('Servers', () => { it('should list servers', async () => { const servers = await client.listServers(); expect(Array.isArray(servers)).toBe(true); if (servers.length > 0) { const server = servers[0]; expect(server.uuid).toBeDefined(); expect(server.name).toBeDefined(); expect(server.ip).toBeDefined(); expect(server.port).toBeDefined(); } }); }); describe('Projects', () => { it('should list projects', async () => { const projects = await client.listProjects(); expect(Array.isArray(projects)).toBe(true); if (projects.length > 0) { const project = projects[0]; expect(project.uuid).toBeDefined(); expect(project.name).toBeDefined(); // Note: team_id field might not be present in all API responses } }); }); describe('Applications', () => { it('should list applications', async () => { const applications = await client.listApplications(); expect(Array.isArray(applications)).toBe(true); if (applications.length > 0) { const app = applications[0]; expect(app.uuid).toBeDefined(); expect(app.name).toBeDefined(); expect(app.status).toBeDefined(); expect(app.build_pack).toBeDefined(); } }); }); describe('Private Keys', () => { it('should list private keys', async () => { const keys = await client.listPrivateKeys(); expect(Array.isArray(keys)).toBe(true); if (keys.length > 0) { const key = keys[0]; expect(key.uuid).toBeDefined(); expect(key.name).toBeDefined(); expect(key.team_id).toBeDefined(); } }); }); });

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/pavelsukhachev/mcp-server-coolify'

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