mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-15 03:01:02 +00:00
99 lines
3.3 KiB
TypeScript
99 lines
3.3 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
import type { StatusScanOverviewResult } from "./status.scan-overview.ts";
|
|
import type { MemoryStatusSnapshot } from "./status.scan.shared.js";
|
|
|
|
const { resolveStatusSummaryFromOverview, resolveMemoryPluginStatus } = vi.hoisted(() => ({
|
|
resolveStatusSummaryFromOverview: vi.fn(async () => ({ sessions: { count: 1 } })),
|
|
resolveMemoryPluginStatus: vi.fn(() => ({
|
|
enabled: false,
|
|
slot: null,
|
|
reason: "memorySearch not configured",
|
|
})),
|
|
}));
|
|
|
|
describe("executeStatusScanFromOverview", () => {
|
|
beforeEach(() => {
|
|
vi.resetModules();
|
|
vi.clearAllMocks();
|
|
vi.doMock("./status.scan-overview.ts", () => ({
|
|
resolveStatusSummaryFromOverview,
|
|
}));
|
|
vi.doMock("./status.scan.shared.js", () => ({
|
|
resolveMemoryPluginStatus,
|
|
}));
|
|
});
|
|
|
|
it("resolves memory and summary, then builds the final scan result", async () => {
|
|
const { executeStatusScanFromOverview } = await import("./status.scan-execute.ts");
|
|
|
|
const overview = {
|
|
cfg: { channels: {} },
|
|
sourceConfig: { channels: {} },
|
|
secretDiagnostics: ["diag"],
|
|
osSummary: { label: "linux" },
|
|
tailscaleMode: "tailnet",
|
|
tailscaleDns: "box.tail.ts.net",
|
|
tailscaleHttpsUrl: "https://box.tail.ts.net",
|
|
update: { available: false, installKind: "package" },
|
|
gatewaySnapshot: {
|
|
gatewayConnection: { url: "ws://127.0.0.1:18789", urlSource: "local" },
|
|
remoteUrlMissing: false,
|
|
gatewayMode: "local",
|
|
gatewayProbeAuth: {},
|
|
gatewayProbeAuthWarning: undefined,
|
|
gatewayProbe: null,
|
|
gatewayReachable: true,
|
|
gatewaySelf: null,
|
|
},
|
|
agentStatus: { agents: [{ id: "main" }], defaultId: "main" },
|
|
skipColdStartNetworkChecks: false,
|
|
} as unknown as StatusScanOverviewResult;
|
|
const resolveMemory = vi.fn<
|
|
(args: {
|
|
cfg: unknown;
|
|
agentStatus: unknown;
|
|
memoryPlugin: unknown;
|
|
runtime?: unknown;
|
|
}) => Promise<MemoryStatusSnapshot>
|
|
>(async () => ({
|
|
agentId: "main",
|
|
backend: "builtin",
|
|
provider: "memory-core",
|
|
}));
|
|
|
|
const result = await executeStatusScanFromOverview({
|
|
overview,
|
|
runtime: {} as never,
|
|
resolveMemory,
|
|
channelIssues: [],
|
|
channels: { rows: [], details: [] },
|
|
pluginCompatibility: [],
|
|
});
|
|
|
|
expect(resolveMemoryPluginStatus).toHaveBeenCalledWith(overview.cfg);
|
|
expect(resolveStatusSummaryFromOverview).toHaveBeenCalledWith({ overview });
|
|
expect(resolveMemory).toHaveBeenCalledWith({
|
|
cfg: overview.cfg,
|
|
agentStatus: overview.agentStatus,
|
|
memoryPlugin: { enabled: false, slot: null, reason: "memorySearch not configured" },
|
|
runtime: {},
|
|
});
|
|
expect(result).toEqual(
|
|
expect.objectContaining({
|
|
cfg: overview.cfg,
|
|
sourceConfig: overview.sourceConfig,
|
|
secretDiagnostics: ["diag"],
|
|
tailscaleDns: "box.tail.ts.net",
|
|
tailscaleHttpsUrl: "https://box.tail.ts.net",
|
|
gatewayConnection: { url: "ws://127.0.0.1:18789", urlSource: "local" },
|
|
gatewayMode: "local",
|
|
gatewayReachable: true,
|
|
channels: { rows: [], details: [] },
|
|
summary: { sessions: { count: 1 } },
|
|
memory: { agentId: "main", backend: "builtin", provider: "memory-core" },
|
|
pluginCompatibility: [],
|
|
}),
|
|
);
|
|
});
|
|
});
|