perf(test): remove resetModules from auth/models/subagent suites

This commit is contained in:
Peter Steinberger
2026-02-13 15:53:26 +00:00
parent c179f71f42
commit 02fe0c840e
9 changed files with 118 additions and 191 deletions

View File

@@ -2,6 +2,12 @@ import fs from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import { afterEach, describe, expect, it, vi } from "vitest";
import {
initSubagentRegistry,
registerSubagentRun,
resetSubagentRegistryForTests,
} from "./subagent-registry.js";
import { loadSubagentRegistryFromDisk } from "./subagent-registry.store.js";
const noop = () => {};
@@ -28,7 +34,7 @@ describe("subagent registry persistence", () => {
afterEach(async () => {
announceSpy.mockClear();
vi.resetModules();
resetSubagentRegistryForTests({ persist: false });
if (tempStateDir) {
await fs.rm(tempStateDir, { recursive: true, force: true });
tempStateDir = null;
@@ -44,10 +50,7 @@ describe("subagent registry persistence", () => {
tempStateDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-subagent-"));
process.env.OPENCLAW_STATE_DIR = tempStateDir;
vi.resetModules();
const mod1 = await import("./subagent-registry.js");
mod1.registerSubagentRun({
registerSubagentRun({
runId: "run-1",
childSessionKey: "agent:main:subagent:test",
requesterSessionKey: "agent:main:main",
@@ -76,9 +79,8 @@ describe("subagent registry persistence", () => {
// Simulate a process restart: module re-import should load persisted runs
// and trigger the announce flow once the run resolves.
vi.resetModules();
const mod2 = await import("./subagent-registry.js");
mod2.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
// allow queued async wait/cleanup to execute
await new Promise((r) => setTimeout(r, 0));
@@ -125,9 +127,8 @@ describe("subagent registry persistence", () => {
await fs.mkdir(path.dirname(registryPath), { recursive: true });
await fs.writeFile(registryPath, `${JSON.stringify(persisted)}\n`, "utf8");
vi.resetModules();
const mod = await import("./subagent-registry.js");
mod.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
await new Promise((r) => setTimeout(r, 0));
@@ -168,8 +169,6 @@ describe("subagent registry persistence", () => {
await fs.mkdir(path.dirname(registryPath), { recursive: true });
await fs.writeFile(registryPath, `${JSON.stringify(persisted)}\n`, "utf8");
vi.resetModules();
const { loadSubagentRegistryFromDisk } = await import("./subagent-registry.store.js");
const runs = loadSubagentRegistryFromDisk();
const entry = runs.get("run-legacy");
expect(entry?.cleanupHandled).toBe(true);
@@ -206,9 +205,8 @@ describe("subagent registry persistence", () => {
await fs.writeFile(registryPath, `${JSON.stringify(persisted)}\n`, "utf8");
announceSpy.mockResolvedValueOnce(false);
vi.resetModules();
const mod1 = await import("./subagent-registry.js");
mod1.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
await new Promise((r) => setTimeout(r, 0));
expect(announceSpy).toHaveBeenCalledTimes(1);
@@ -219,9 +217,8 @@ describe("subagent registry persistence", () => {
expect(afterFirst.runs["run-3"].cleanupCompletedAt).toBeUndefined();
announceSpy.mockResolvedValueOnce(true);
vi.resetModules();
const mod2 = await import("./subagent-registry.js");
mod2.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
await new Promise((r) => setTimeout(r, 0));
expect(announceSpy).toHaveBeenCalledTimes(2);
@@ -256,9 +253,8 @@ describe("subagent registry persistence", () => {
await fs.writeFile(registryPath, `${JSON.stringify(persisted)}\n`, "utf8");
announceSpy.mockResolvedValueOnce(false);
vi.resetModules();
const mod1 = await import("./subagent-registry.js");
mod1.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
await new Promise((r) => setTimeout(r, 0));
expect(announceSpy).toHaveBeenCalledTimes(1);
@@ -268,9 +264,8 @@ describe("subagent registry persistence", () => {
expect(afterFirst.runs["run-4"]?.cleanupHandled).toBe(false);
announceSpy.mockResolvedValueOnce(true);
vi.resetModules();
const mod2 = await import("./subagent-registry.js");
mod2.initSubagentRegistry();
resetSubagentRegistryForTests({ persist: false });
initSubagentRegistry();
await new Promise((r) => setTimeout(r, 0));
expect(announceSpy).toHaveBeenCalledTimes(2);