| import fs from "node:fs/promises"; |
| import path from "node:path"; |
| import { describe, expect, it } from "vitest"; |
| import { defaultRuntime } from "../runtime.js"; |
| import { withStateDirEnv } from "../test-helpers/state-dir-env.js"; |
| import { createCanvasHostHandler } from "./server.js"; |
|
|
| describe("canvas host state dir defaults", () => { |
| it("uses OPENCLAW_STATE_DIR for the default canvas root", async () => { |
| await withStateDirEnv("openclaw-canvas-state-", async ({ stateDir }) => { |
| const handler = await createCanvasHostHandler({ |
| runtime: defaultRuntime, |
| allowInTests: true, |
| }); |
|
|
| try { |
| const expectedRoot = await fs.realpath(path.join(stateDir, "canvas")); |
| const actualRoot = await fs.realpath(handler.rootDir); |
| expect(actualRoot).toBe(expectedRoot); |
| const indexPath = path.join(expectedRoot, "index.html"); |
| const indexContents = await fs.readFile(indexPath, "utf8"); |
| expect(indexContents).toContain("OpenClaw Canvas"); |
| expect(indexContents).not.toContain("statusEl.innerHTML"); |
| expect(indexContents).toContain("appendBadge("); |
| } finally { |
| await handler.close(); |
| } |
| }); |
| }); |
| }); |
|
|