test: share fast-path mocks for targeted doctor suites
This commit is contained in:
49
src/commands/doctor.fast-path-mocks.ts
Normal file
49
src/commands/doctor.fast-path-mocks.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { vi } from "vitest";
|
||||
|
||||
vi.mock("./doctor-completion.js", () => ({
|
||||
doctorShellCompletion: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-gateway-daemon-flow.js", () => ({
|
||||
maybeRepairGatewayDaemon: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-gateway-health.js", () => ({
|
||||
checkGatewayHealth: vi.fn().mockResolvedValue({ healthOk: false }),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-memory-search.js", () => ({
|
||||
noteMemorySearchHealth: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-platform-notes.js", () => ({
|
||||
noteDeprecatedLegacyEnvVars: vi.fn(),
|
||||
noteMacLaunchAgentOverrides: vi.fn().mockResolvedValue(undefined),
|
||||
noteMacLaunchctlGatewayEnvOverrides: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-sandbox.js", () => ({
|
||||
maybeRepairSandboxImages: vi.fn(async (cfg: unknown) => cfg),
|
||||
noteSandboxScopeWarnings: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-security.js", () => ({
|
||||
noteSecurityWarnings: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-session-locks.js", () => ({
|
||||
noteSessionLockHealth: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-state-integrity.js", () => ({
|
||||
noteStateIntegrity: vi.fn().mockResolvedValue(undefined),
|
||||
noteWorkspaceBackupTip: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-ui.js", () => ({
|
||||
maybeRepairUiProtocolFreshness: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-workspace-status.js", () => ({
|
||||
noteWorkspaceStatus: vi.fn(),
|
||||
}));
|
||||
@@ -1,4 +1,4 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import {
|
||||
createDoctorRuntime,
|
||||
findLegacyGatewayServices,
|
||||
@@ -14,57 +14,10 @@ import {
|
||||
uninstallLegacyGatewayServices,
|
||||
writeConfigFile,
|
||||
} from "./doctor.e2e-harness.js";
|
||||
import "./doctor.fast-path-mocks.js";
|
||||
|
||||
const DOCTOR_MIGRATION_TIMEOUT_MS = 20_000;
|
||||
|
||||
vi.mock("./doctor-completion.js", () => ({
|
||||
doctorShellCompletion: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-gateway-daemon-flow.js", () => ({
|
||||
maybeRepairGatewayDaemon: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-gateway-health.js", () => ({
|
||||
checkGatewayHealth: vi.fn().mockResolvedValue({ healthOk: false }),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-memory-search.js", () => ({
|
||||
noteMemorySearchHealth: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-platform-notes.js", () => ({
|
||||
noteDeprecatedLegacyEnvVars: vi.fn(),
|
||||
noteMacLaunchAgentOverrides: vi.fn().mockResolvedValue(undefined),
|
||||
noteMacLaunchctlGatewayEnvOverrides: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-sandbox.js", () => ({
|
||||
maybeRepairSandboxImages: vi.fn(async (cfg: unknown) => cfg),
|
||||
noteSandboxScopeWarnings: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-security.js", () => ({
|
||||
noteSecurityWarnings: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-session-locks.js", () => ({
|
||||
noteSessionLockHealth: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-state-integrity.js", () => ({
|
||||
noteStateIntegrity: vi.fn().mockResolvedValue(undefined),
|
||||
noteWorkspaceBackupTip: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-ui.js", () => ({
|
||||
maybeRepairUiProtocolFreshness: vi.fn().mockResolvedValue(undefined),
|
||||
}));
|
||||
|
||||
vi.mock("./doctor-workspace-status.js", () => ({
|
||||
noteWorkspaceStatus: vi.fn(),
|
||||
}));
|
||||
|
||||
describe("doctor command", () => {
|
||||
it("does not add a new gateway auth token while fixing legacy issues on invalid config", async () => {
|
||||
mockDoctorConfigSnapshot({
|
||||
|
||||
@@ -3,6 +3,9 @@ import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { beforeAll, describe, expect, it, vi } from "vitest";
|
||||
import { createDoctorRuntime, mockDoctorConfigSnapshot, note } from "./doctor.e2e-harness.js";
|
||||
import "./doctor.fast-path-mocks.js";
|
||||
|
||||
vi.doUnmock("./doctor-sandbox.js");
|
||||
|
||||
let doctorCommand: typeof import("./doctor.js").doctorCommand;
|
||||
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
import fs from "node:fs";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { beforeAll, describe, expect, it } from "vitest";
|
||||
import { beforeAll, describe, expect, it, vi } from "vitest";
|
||||
import { createDoctorRuntime, mockDoctorConfigSnapshot, note } from "./doctor.e2e-harness.js";
|
||||
import "./doctor.fast-path-mocks.js";
|
||||
|
||||
vi.doUnmock("./doctor-state-integrity.js");
|
||||
|
||||
let doctorCommand: typeof import("./doctor.js").doctorCommand;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user