Files
Moltbot/src/cli/plugins-config.test.ts
2026-02-23 19:40:42 +00:00

69 lines
1.7 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { OpenClawConfig } from "../config/config.js";
import { setPluginEnabledInConfig } from "./plugins-config.js";
describe("setPluginEnabledInConfig", () => {
it("sets enabled flag for an existing plugin entry", () => {
const config = {
plugins: {
entries: {
alpha: { enabled: false, custom: "x" },
},
},
} as OpenClawConfig;
const next = setPluginEnabledInConfig(config, "alpha", true);
expect(next.plugins?.entries?.alpha).toEqual({
enabled: true,
custom: "x",
});
});
it("creates a plugin entry when it does not exist", () => {
const config = {} as OpenClawConfig;
const next = setPluginEnabledInConfig(config, "beta", false);
expect(next.plugins?.entries?.beta).toEqual({
enabled: false,
});
});
it("keeps built-in channel and plugin entry flags in sync", () => {
const config = {
channels: {
telegram: {
enabled: true,
dmPolicy: "open",
},
},
plugins: {
entries: {
telegram: {
enabled: true,
},
},
},
} as OpenClawConfig;
const disabled = setPluginEnabledInConfig(config, "telegram", false);
expect(disabled.channels?.telegram).toEqual({
enabled: false,
dmPolicy: "open",
});
expect(disabled.plugins?.entries?.telegram).toEqual({
enabled: false,
});
const reenabled = setPluginEnabledInConfig(disabled, "telegram", true);
expect(reenabled.channels?.telegram).toEqual({
enabled: true,
dmPolicy: "open",
});
expect(reenabled.plugins?.entries?.telegram).toEqual({
enabled: true,
});
});
});