46 lines
1.6 KiB
TypeScript
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();
|
|
});
|
|
});
|