refactor(test): dedupe plugin env overrides via env helpers

This commit is contained in:
Peter Steinberger
2026-02-21 13:03:29 +00:00
parent f48698a50b
commit 7a27e2648a
2 changed files with 12 additions and 28 deletions

View File

@@ -3,6 +3,7 @@ import fs from "node:fs";
import os from "node:os";
import path from "node:path";
import { afterAll, afterEach, describe, expect, it } from "vitest";
import { withEnv } from "../test-utils/env.js";
import { loadOpenClawPlugins } from "./loader.js";
type TempPlugin = { dir: string; file: string; id: string };
@@ -516,10 +517,8 @@ describe("loadOpenClawPlugins", () => {
it("warns when loaded non-bundled plugin has no install/load-path provenance", () => {
process.env.OPENCLAW_BUNDLED_PLUGINS_DIR = "/nonexistent/bundled/plugins";
const prevStateDir = process.env.OPENCLAW_STATE_DIR;
const stateDir = makeTempDir();
process.env.OPENCLAW_STATE_DIR = stateDir;
try {
withEnv({ OPENCLAW_STATE_DIR: stateDir, CLAWDBOT_STATE_DIR: undefined }, () => {
const globalDir = path.join(stateDir, "extensions", "rogue");
fs.mkdirSync(globalDir, { recursive: true });
writePlugin({
@@ -552,13 +551,7 @@ describe("loadOpenClawPlugins", () => {
msg.includes("rogue") && msg.includes("loaded without install/load-path provenance"),
),
).toBe(true);
} finally {
if (prevStateDir === undefined) {
delete process.env.OPENCLAW_STATE_DIR;
} else {
process.env.OPENCLAW_STATE_DIR = prevStateDir;
}
}
});
});
it("rejects plugin entry files that escape plugin root via symlink", () => {