Files
openclaw/test/scripts/live-docker-stage.test.ts
Peter Steinberger 5443baa852 Persist plugin install index in SQLite (#88794)
* refactor: persist plugin install index in sqlite

* fix: merge legacy plugin index records into sqlite

* test: update plugin index sqlite fixtures

* fix: migrate custom plugin install indexes

* test: update plugin index sentinel

* fix: exclude migrated plugin index archives

* fix: read post-upgrade plugin index from sqlite

* fix: migrate legacy plugin index before agent runs

* fix: respect disabled persisted plugin registry reads

* test: type plugin install record fixtures

* fix: simplify plugin index record reader type

* test: fix sqlite plugin index CI fallout

* test: mock provider normalization in agent command tests

# Conflicts:
#	src/commands/agent-command.test-mocks.ts

* build: remove unused ui three dependency
2026-05-31 20:51:33 -04:00

29 lines
1.2 KiB
TypeScript

import { readFileSync } from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { describe, expect, it } from "vitest";
const repoRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
const stageScriptPath = path.join(repoRoot, "scripts/lib/live-docker-stage.sh");
describe("live Docker state staging", () => {
it("keeps repo-local generated artifacts out of the source copy", () => {
const script = readFileSync(stageScriptPath, "utf8");
expect(script).toContain("--exclude=.artifacts");
});
it("keeps host-only generated registry state out of the container copy", () => {
const script = readFileSync(stageScriptPath, "utf8");
expect(script).toContain("--exclude=workspace");
expect(script).toContain("--exclude=sandboxes");
expect(script).toContain("--exclude=plugins/installs.json");
expect(script).toContain("--exclude=plugins/installs.json.migrated");
expect(script).toContain("DELETE FROM installed_plugin_index");
expect(script).toContain("PRAGMA secure_delete = ON");
expect(script).toContain("VACUUM");
expect(script).toContain("host-absolute paths");
});
});