Files
openclaw/src/plugin-sdk/root-alias.test.ts
a 4fb40497d4 fix(daemon): handle systemctl is-enabled exit 4 (not-found) on Ubuntu (#33634)
Merged via squash.

Prepared head SHA: 67dffc3ee2
Co-authored-by: Yuandiaodiaodiao <33371662+Yuandiaodiaodiao@users.noreply.github.com>
Co-authored-by: shakkernerd <165377636+shakkernerd@users.noreply.github.com>
Reviewed-by: @shakkernerd
2026-03-04 16:13:45 +00:00

45 lines
1.7 KiB
TypeScript

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<string, unknown>;
type EmptySchema = {
safeParse: (value: unknown) =>
| { success: true; data?: unknown }
| {
success: false;
error: { issues: Array<{ path: Array<string | number>; 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();
});
});