Files
openclaw/extensions/canvas/src/config.test.ts
2026-05-07 09:07:18 +01:00

88 lines
2.0 KiB
TypeScript

import { afterEach, describe, expect, it } from "vitest";
import {
isCanvasHostEnabled,
isCanvasPluginEnabled,
parseCanvasPluginConfig,
resolveCanvasHostConfig,
} from "./config.js";
describe("Canvas plugin config", () => {
const originalSkipCanvasHost = process.env.OPENCLAW_SKIP_CANVAS_HOST;
afterEach(() => {
if (originalSkipCanvasHost === undefined) {
delete process.env.OPENCLAW_SKIP_CANVAS_HOST;
} else {
process.env.OPENCLAW_SKIP_CANVAS_HOST = originalSkipCanvasHost;
}
});
it("parses host config from the plugin entry", () => {
expect(
parseCanvasPluginConfig({
host: {
enabled: false,
root: "~/canvas",
port: 18793,
liveReload: false,
ignored: true,
},
}),
).toEqual({
host: {
enabled: false,
root: "~/canvas",
port: 18793,
liveReload: false,
},
});
});
it("resolves host config from the plugin entry only", () => {
expect(
resolveCanvasHostConfig({
config: {
plugins: {
entries: {
canvas: {
config: {
host: {
enabled: false,
root: "/plugin",
liveReload: false,
},
},
},
},
},
},
}),
).toEqual({
enabled: false,
root: "/plugin",
liveReload: false,
});
});
it("disables the host when the bundled Canvas plugin is disabled", () => {
const config = {
plugins: {
entries: {
canvas: {
enabled: false,
},
},
},
};
expect(isCanvasPluginEnabled(config)).toBe(false);
expect(isCanvasHostEnabled(config)).toBe(false);
});
it("honors truthy skip-canvas env values before host registration", () => {
for (const value of ["1", "true", " yes ", "ON"]) {
process.env.OPENCLAW_SKIP_CANVAS_HOST = value;
expect(isCanvasHostEnabled()).toBe(false);
}
});
});