mirror of
https://github.com/alkimake/paperclip.git
synced 2026-06-16 10:50:38 +09:00
59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
|
|
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",
|
||
|
|
);
|
||
|
|
});
|
||
|
|
});
|