import { createRequire } from "node:module"; import { describe, expect, it } from "vitest"; const require = createRequire(import.meta.url); const rootSdk = require("./root-alias.cjs") as Record; type EmptySchema = { safeParse: (value: unknown) => | { success: true; data?: unknown } | { success: false; error: { issues: Array<{ path: Array; message: string }> }; }; }; describe("plugin-sdk root alias", () => { it("exposes the fast empty config schema helper", () => { const factory = rootSdk.emptyPluginConfigSchema as (() => EmptySchema) | undefined; expect(typeof factory).toBe("function"); if (!factory) { return; } const schema = factory(); expect(schema.safeParse(undefined)).toEqual({ success: true, data: undefined }); expect(schema.safeParse({})).toEqual({ success: true, data: {} }); const parsed = schema.safeParse({ invalid: true }); expect(parsed.success).toBe(false); }); it("loads legacy root exports lazily through the proxy", { timeout: 240_000 }, () => { expect(typeof rootSdk.resolveControlCommandGate).toBe("function"); expect(typeof rootSdk.default).toBe("object"); expect(rootSdk.default).toBe(rootSdk); expect(rootSdk.__esModule).toBe(true); }); it("preserves reflection semantics for lazily resolved exports", { timeout: 240_000 }, () => { expect("resolveControlCommandGate" in rootSdk).toBe(true); const keys = Object.keys(rootSdk); expect(keys).toContain("resolveControlCommandGate"); const descriptor = Object.getOwnPropertyDescriptor(rootSdk, "resolveControlCommandGate"); expect(descriptor).toBeDefined(); }); });