Files
Ekklesia/core/tests/doctor-import.test.ts
T
ekklesia 02ee3ccd80
CI / verify (pull_request) Successful in 20s
CI / infrastructure-smoke (pull_request) Successful in 20s
CI / migration-smoke (pull_request) Successful in 25s
feat: add Ekklesia doctor command
2026-07-21 10:42:21 -05:00

46 lines
1.6 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
const discoverModules = vi.fn();
const discoverModuleSchemas = vi.fn();
const discoverModuleMigrations = vi.fn();
const startModuleRuntime = vi.fn();
const createPostgresMigrationDatabase = vi.fn();
const planModuleMigrations = vi.fn();
vi.mock("../src/modules/index.js", async (importOriginal) => ({
...(await importOriginal<typeof import("../src/modules/index.js")>()),
discoverModuleMigrations,
discoverModules,
discoverModuleSchemas,
startModuleRuntime,
}));
vi.mock("../src/migrations/index.js", async (importOriginal) => ({
...(await importOriginal<typeof import("../src/migrations/index.js")>()),
createPostgresMigrationDatabase,
planModuleMigrations,
}));
describe("Doctor import safety", () => {
it("does not discover, connect, plan, or print when imported", async () => {
const log = vi.spyOn(console, "log").mockImplementation(() => undefined);
const error = vi.spyOn(console, "error").mockImplementation(() => undefined);
await import("../src/diagnostics/index.js");
await import("../src/cli/doctor.js");
await import("../src/index.js");
expect(discoverModules).not.toHaveBeenCalled();
expect(discoverModuleSchemas).not.toHaveBeenCalled();
expect(discoverModuleMigrations).not.toHaveBeenCalled();
expect(startModuleRuntime).not.toHaveBeenCalled();
expect(createPostgresMigrationDatabase).not.toHaveBeenCalled();
expect(planModuleMigrations).not.toHaveBeenCalled();
expect(log).not.toHaveBeenCalled();
expect(error).not.toHaveBeenCalled();
log.mockRestore();
error.mockRestore();
});
});