Files
openclaw-zero-token/config/validation.channel-metadata.test.ts
sjhu 571e14a236 feat: upgrade to upstream v2026.3.28
Major upgrade from e26988a38 to upstream v2026.3.28 (f9b107928).
Key changes:
- Upstream src/, ui/, extensions/ (89 bundled extensions)
- Zero-token web providers preserved in src/zero-token/
- AskOnce plugin restored and registered as CLI command
- Added missing packages: @anthropic-ai/vertex-sdk, @modelcontextprotocol/sdk
- Fixed tsconfig rootDir, skipLibCheck for plugin-sdk DTS build
- Added askonce to bundled plugin metadata and package.json exports
- Fixed AskOnce CLI command registration (missing commands metadata)
- Restored AskOnce adapter imports (correct 5-level relative paths)
- Removed stale migration artifacts from root directory
2026-03-30 17:58:12 +08:00

58 lines
1.6 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
const mockLoadPluginManifestRegistry = vi.hoisted(() => vi.fn());
vi.mock("../plugins/manifest-registry.js", () => ({
loadPluginManifestRegistry: (...args: unknown[]) => mockLoadPluginManifestRegistry(...args),
}));
describe("validateConfigObjectRawWithPlugins channel metadata", () => {
it("applies bundled channel defaults from plugin-owned schema metadata", async () => {
mockLoadPluginManifestRegistry.mockReturnValue({
diagnostics: [],
plugins: [
{
id: "telegram",
origin: "bundled",
channels: ["telegram"],
channelCatalogMeta: {
id: "telegram",
label: "Telegram",
blurb: "Telegram channel",
},
channelConfigs: {
telegram: {
schema: {
type: "object",
properties: {
dmPolicy: {
type: "string",
enum: ["pairing", "allowlist"],
default: "pairing",
},
},
additionalProperties: false,
},
uiHints: {},
},
},
},
],
});
const { validateConfigObjectRawWithPlugins } = await import("./validation.js");
const result = validateConfigObjectRawWithPlugins({
channels: {
telegram: {},
},
});
expect(result.ok).toBe(true);
if (result.ok) {
expect(result.config.channels?.telegram).toEqual(
expect.objectContaining({ dmPolicy: "pairing" }),
);
}
});
});