import { describe, expect, it, beforeEach, afterEach } from "vitest"; import type { ServerAdapterModule } from "../adapters/index.js"; import { findServerAdapter, listAdapterModels, registerServerAdapter, requireServerAdapter, unregisterServerAdapter, } from "../adapters/index.js"; const externalAdapter: ServerAdapterModule = { type: "external_test", execute: async () => ({ exitCode: 0, signal: null, timedOut: false, }), testEnvironment: async () => ({ adapterType: "external_test", status: "pass", checks: [], testedAt: new Date(0).toISOString(), }), models: [{ id: "external-model", label: "External Model" }], supportsLocalAgentJwt: false, }; describe("server adapter registry", () => { beforeEach(() => { unregisterServerAdapter("external_test"); }); afterEach(() => { unregisterServerAdapter("external_test"); }); it("registers external adapters and exposes them through lookup helpers", async () => { expect(findServerAdapter("external_test")).toBeNull(); registerServerAdapter(externalAdapter); expect(requireServerAdapter("external_test")).toBe(externalAdapter); expect(await listAdapterModels("external_test")).toEqual([ { id: "external-model", label: "External Model" }, ]); }); it("removes external adapters when unregistered", () => { registerServerAdapter(externalAdapter); unregisterServerAdapter("external_test"); expect(findServerAdapter("external_test")).toBeNull(); expect(() => requireServerAdapter("external_test")).toThrow( "Unknown adapter type: external_test", ); }); });