import assert from "node:assert/strict"; import { describe, test } from "node:test"; import { getAvailableAgents } from "../../src/lib/cloudAgent/registry.ts"; describe("cloud-agent health API — getAvailableAgents", () => { test("returns exactly four agents", () => { const agents = getAvailableAgents(); assert.equal(agents.length, 4); }); test('includes "jules"', () => { assert.ok(getAvailableAgents().includes("jules")); }); test('includes "devin"', () => { assert.ok(getAvailableAgents().includes("devin")); }); test('includes "codex-cloud"', () => { assert.ok(getAvailableAgents().includes("codex-cloud")); }); test('includes "cursor-cloud"', () => { assert.ok(getAvailableAgents().includes("cursor-cloud")); }); test("returns agents in expected order", () => { assert.deepEqual(getAvailableAgents(), ["jules", "devin", "codex-cloud", "cursor-cloud"]); }); }); describe("cloud-agent health API — health check logic", () => { // The route's checkProviderHealth returns { connected: false, error: "No credentials configured" } // when getCredentialFromDb returns null. We test this logic pattern directly. test("missing credentials produces connected: false with error message", () => { // Simulate the logic from the route handler const credentials = null; // getCredentialFromDb returns null const result = { id: "jules", name: "Jules", connected: credentials !== null, latencyMs: 0, error: credentials === null ? "No credentials configured" : undefined, }; assert.equal(result.connected, false); assert.equal(result.error, "No credentials configured"); }); test("unknown provider produces connected: false with Unknown provider error", () => { // Simulate: getAgent returns null for unknown provider const agent = null; const result = { id: "unknown", name: "unknown", connected: false, latencyMs: 0, error: agent === null ? "Unknown provider" : undefined, }; assert.equal(result.connected, false); assert.equal(result.error, "Unknown provider"); }); test("PROVIDER_NAMES maps agent ids to display names", () => { const PROVIDER_NAMES: Record = { jules: "Jules", devin: "Devin", "codex-cloud": "Codex Cloud", "cursor-cloud": "Cursor Cloud", }; assert.equal(PROVIDER_NAMES["jules"], "Jules"); assert.equal(PROVIDER_NAMES["devin"], "Devin"); assert.equal(PROVIDER_NAMES["codex-cloud"], "Codex Cloud"); assert.equal(PROVIDER_NAMES["cursor-cloud"], "Cursor Cloud"); assert.equal(PROVIDER_NAMES["nonexistent"], undefined); }); });