import { describe, expect, test } from "bun:test"; import { CheckerRegistry } from "../../../../src/server/checker/runner/registry"; import type { Checker } from "../../../../src/server/checker/runner/types"; function createChecker(type: string): Checker { return { type, resolve: () => ({}) as any, execute: () => Promise.resolve({} as any), serialize: () => ({ target: "", config: "" }), }; } describe("CheckerRegistry", () => { test("注册并获取 Checker", () => { const registry = new CheckerRegistry(); const checker = createChecker("http"); registry.register(checker); expect(registry.get("http")).toBe(checker); }); test("获取未注册的 type 抛出错误", () => { const registry = new CheckerRegistry(); expect(() => registry.get("unknown")).toThrow("不支持的 probe type"); }); test("重复注册同一 type 抛出错误", () => { const registry = new CheckerRegistry(); registry.register(createChecker("http")); expect(() => registry.register(createChecker("http"))).toThrow("已注册"); }); test("查询支持的 type 列表", () => { const registry = new CheckerRegistry(); registry.register(createChecker("http")); registry.register(createChecker("command")); expect(registry.supportedTypes).toEqual(["http", "command"]); }); });