test: follow docker e2e script refactor

This commit is contained in:
Peter Steinberger
2026-04-29 08:56:23 +01:00
parent f2405c830b
commit f3f614fae6
4 changed files with 91 additions and 42 deletions

View File

@@ -2,30 +2,33 @@ import { readFileSync } from "node:fs";
import { describe, expect, it } from "vitest";
const PLUGIN_UPDATE_DOCKER_SCRIPT = "scripts/e2e/plugin-update-unchanged-docker.sh";
const PLUGIN_UPDATE_SCENARIO_SCRIPT = "scripts/e2e/lib/plugin-update/unchanged-scenario.sh";
const PLUGIN_UPDATE_PROBE_SCRIPT = "scripts/e2e/lib/plugin-update/probe.mjs";
describe("plugin update unchanged Docker E2E", () => {
it("seeds current plugin install ledger state before checking config stability", () => {
const script = readFileSync(PLUGIN_UPDATE_DOCKER_SCRIPT, "utf8");
const configSeedStart = script.indexOf('cat > \\"\\$OPENCLAW_CONFIG_PATH\\"');
const configSeedEnd = script.indexOf('cat > \\"\\$HOME/.openclaw/plugins/installs.json\\"');
const configSeed = script.slice(configSeedStart, configSeedEnd);
const runner = readFileSync(PLUGIN_UPDATE_DOCKER_SCRIPT, "utf8");
const scenario = readFileSync(PLUGIN_UPDATE_SCENARIO_SCRIPT, "utf8");
const probe = readFileSync(PLUGIN_UPDATE_PROBE_SCRIPT, "utf8");
expect(configSeedStart).toBeGreaterThanOrEqual(0);
expect(configSeedEnd).toBeGreaterThan(configSeedStart);
expect(configSeed).toContain('\\"plugins\\": {}');
expect(configSeed).not.toContain('\\"installs\\"');
expect(script).toContain('\\"installRecords\\": {');
expect(script).toContain('\\"lossless-claw\\": {');
expect(runner).toContain("scripts/e2e/lib/plugin-update/unchanged-scenario.sh");
expect(scenario).toContain('node "$probe" seed');
expect(probe).toContain("writeJson(process.env.OPENCLAW_CONFIG_PATH, { plugins: {} });");
expect(probe).not.toContain(
"writeJson(process.env.OPENCLAW_CONFIG_PATH, { plugins: { installs",
);
expect(probe).toContain("installRecords: {");
expect(probe).toContain('"lossless-claw": {');
});
it("bounds the update command and prints diagnostics on hangs", () => {
const script = readFileSync(PLUGIN_UPDATE_DOCKER_SCRIPT, "utf8");
const script = readFileSync(PLUGIN_UPDATE_SCENARIO_SCRIPT, "utf8");
expect(script).toContain("OPENCLAW_PLUGIN_UPDATE_TIMEOUT_SECONDS");
expect(script).toContain(
'timeout \\"\\${plugin_update_timeout_seconds}s\\" node \\"\\$entry\\" plugins update',
'timeout "${plugin_update_timeout_seconds}s" node "$entry" plugins update',
);
expect(script).toContain('\\"--- plugin update output ---\\"');
expect(script).toContain('\\"--- local registry output ---\\"');
expect(script).toContain('"--- plugin update output ---"');
expect(script).toContain('"--- local registry output ---"');
});
});