test: scope manager reindex state

This commit is contained in:
Shakker
2026-06-26 12:56:21 +01:00
parent 94d93d4c85
commit e4f63577d0
2 changed files with 30 additions and 4 deletions

View File

@@ -18,6 +18,19 @@ const createEmbeddingProviderMock = vi.hoisted(() =>
providerUnavailableReason: "No embeddings provider available.",
})),
);
const originalFtsOnlyStateDir = process.env.OPENCLAW_STATE_DIR;
function setFtsOnlyStateDir(stateDir: string): void {
Reflect.set(process.env, "OPENCLAW_STATE_DIR", stateDir);
}
function restoreFtsOnlyStateDir(): void {
if (originalFtsOnlyStateDir === undefined) {
Reflect.deleteProperty(process.env, "OPENCLAW_STATE_DIR");
} else {
Reflect.set(process.env, "OPENCLAW_STATE_DIR", originalFtsOnlyStateDir);
}
}
vi.mock("./embeddings.js", () => ({
createEmbeddingProvider: createEmbeddingProviderMock,
@@ -44,7 +57,7 @@ describe("memory manager FTS-only reindex", () => {
workspaceDir = path.join(fixtureRoot, `case-${caseId++}`);
await fs.mkdir(path.join(workspaceDir, "memory"), { recursive: true });
await fs.writeFile(path.join(workspaceDir, "MEMORY.md"), "Alpha topic\n\nKeep this note.");
vi.stubEnv("OPENCLAW_STATE_DIR", path.join(workspaceDir, "state"));
setFtsOnlyStateDir(path.join(workspaceDir, "state"));
indexPath = resolveOpenClawAgentSqlitePath({ agentId: "main" });
});
@@ -54,7 +67,7 @@ describe("memory manager FTS-only reindex", () => {
manager = null;
}
await closeAllMemorySearchManagers();
vi.unstubAllEnvs();
restoreFtsOnlyStateDir();
});
afterAll(async () => {

View File

@@ -13,6 +13,19 @@ import type { MemoryIndexMeta } from "./manager-reindex-state.js";
type SessionDeltaState = { lastSize: number; pendingBytes: number; pendingMessages: number };
type SyncSessionParams = { needsFullReindex: boolean; targetSessionFiles?: string[] };
const originalReindexStateDir = process.env.OPENCLAW_STATE_DIR;
function setReindexStateDir(stateDir: string): void {
Reflect.set(process.env, "OPENCLAW_STATE_DIR", stateDir);
}
function restoreReindexStateDir(): void {
if (originalReindexStateDir === undefined) {
Reflect.deleteProperty(process.env, "OPENCLAW_STATE_DIR");
} else {
Reflect.set(process.env, "OPENCLAW_STATE_DIR", originalReindexStateDir);
}
}
type ReindexHarness = {
sync: (params: { reason?: string; force?: boolean }) => Promise<void>;
@@ -42,11 +55,11 @@ describe("memory manager reindex recovery", () => {
workspaceDir = path.join(fixtureRoot, "workspace");
memoryDir = path.join(workspaceDir, "memory");
await fs.mkdir(memoryDir, { recursive: true });
vi.stubEnv("OPENCLAW_STATE_DIR", path.join(fixtureRoot, "state"));
setReindexStateDir(path.join(fixtureRoot, "state"));
});
afterEach(async () => {
vi.unstubAllEnvs();
restoreReindexStateDir();
vi.restoreAllMocks();
if (manager) {
await manager.close();