mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 15:51:22 +00:00
test: dedupe shared setup in channel and doctor config tests
This commit is contained in:
@@ -23,6 +23,19 @@ async function runDoctorConfigWithInput(params: {
|
||||
});
|
||||
}
|
||||
|
||||
function expectGoogleChatDmAllowFromRepaired(cfg: unknown) {
|
||||
const typed = cfg as {
|
||||
channels: {
|
||||
googlechat: {
|
||||
dm: { allowFrom: string[] };
|
||||
allowFrom?: string[];
|
||||
};
|
||||
};
|
||||
};
|
||||
expect(typed.channels.googlechat.dm.allowFrom).toEqual(["*"]);
|
||||
expect(typed.channels.googlechat.allowFrom).toBeUndefined();
|
||||
}
|
||||
|
||||
describe("doctor config flow", () => {
|
||||
it("preserves invalid config for doctor repairs", async () => {
|
||||
const result = await runDoctorConfigWithInput({
|
||||
@@ -361,20 +374,7 @@ describe("doctor config flow", () => {
|
||||
},
|
||||
});
|
||||
|
||||
const cfg = result.cfg as unknown as {
|
||||
channels: {
|
||||
googlechat: {
|
||||
dm: {
|
||||
policy: string;
|
||||
allowFrom: string[];
|
||||
};
|
||||
allowFrom?: string[];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
expect(cfg.channels.googlechat.dm.allowFrom).toEqual(["*"]);
|
||||
expect(cfg.channels.googlechat.allowFrom).toBeUndefined();
|
||||
expectGoogleChatDmAllowFromRepaired(result.cfg);
|
||||
});
|
||||
|
||||
it("repairs googlechat account dm.policy open by setting dm.allowFrom on repair", async () => {
|
||||
@@ -430,19 +430,6 @@ describe("doctor config flow", () => {
|
||||
},
|
||||
});
|
||||
|
||||
const cfg = result.cfg as unknown as {
|
||||
channels: {
|
||||
googlechat: {
|
||||
dm: {
|
||||
policy: string;
|
||||
allowFrom: string[];
|
||||
};
|
||||
allowFrom?: string[];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
expect(cfg.channels.googlechat.dm.allowFrom).toEqual(["*"]);
|
||||
expect(cfg.channels.googlechat.allowFrom).toBeUndefined();
|
||||
expectGoogleChatDmAllowFromRepaired(result.cfg);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -51,6 +51,26 @@ vi.mock("./daemon-install-helpers.js", () => ({
|
||||
|
||||
import { maybeRepairGatewayServiceConfig } from "./doctor-gateway-services.js";
|
||||
|
||||
function makeDoctorIo() {
|
||||
return { log: vi.fn(), error: vi.fn(), exit: vi.fn() };
|
||||
}
|
||||
|
||||
function makeDoctorPrompts() {
|
||||
return {
|
||||
confirm: vi.fn().mockResolvedValue(true),
|
||||
confirmRepair: vi.fn().mockResolvedValue(true),
|
||||
confirmAggressive: vi.fn().mockResolvedValue(true),
|
||||
confirmSkipInNonInteractive: vi.fn().mockResolvedValue(true),
|
||||
select: vi.fn().mockResolvedValue("node"),
|
||||
shouldRepair: false,
|
||||
shouldForce: false,
|
||||
};
|
||||
}
|
||||
|
||||
async function runRepair(cfg: OpenClawConfig) {
|
||||
await maybeRepairGatewayServiceConfig(cfg, "local", makeDoctorIo(), makeDoctorPrompts());
|
||||
}
|
||||
|
||||
describe("maybeRepairGatewayServiceConfig", () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
@@ -91,20 +111,7 @@ describe("maybeRepairGatewayServiceConfig", () => {
|
||||
},
|
||||
};
|
||||
|
||||
await maybeRepairGatewayServiceConfig(
|
||||
cfg,
|
||||
"local",
|
||||
{ log: vi.fn(), error: vi.fn(), exit: vi.fn() },
|
||||
{
|
||||
confirm: vi.fn().mockResolvedValue(true),
|
||||
confirmRepair: vi.fn().mockResolvedValue(true),
|
||||
confirmAggressive: vi.fn().mockResolvedValue(true),
|
||||
confirmSkipInNonInteractive: vi.fn().mockResolvedValue(true),
|
||||
select: vi.fn().mockResolvedValue("node"),
|
||||
shouldRepair: false,
|
||||
shouldForce: false,
|
||||
},
|
||||
);
|
||||
await runRepair(cfg);
|
||||
|
||||
expect(mocks.auditGatewayServiceConfig).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
@@ -164,20 +171,7 @@ describe("maybeRepairGatewayServiceConfig", () => {
|
||||
gateway: {},
|
||||
};
|
||||
|
||||
await maybeRepairGatewayServiceConfig(
|
||||
cfg,
|
||||
"local",
|
||||
{ log: vi.fn(), error: vi.fn(), exit: vi.fn() },
|
||||
{
|
||||
confirm: vi.fn().mockResolvedValue(true),
|
||||
confirmRepair: vi.fn().mockResolvedValue(true),
|
||||
confirmAggressive: vi.fn().mockResolvedValue(true),
|
||||
confirmSkipInNonInteractive: vi.fn().mockResolvedValue(true),
|
||||
select: vi.fn().mockResolvedValue("node"),
|
||||
shouldRepair: false,
|
||||
shouldForce: false,
|
||||
},
|
||||
);
|
||||
await runRepair(cfg);
|
||||
|
||||
expect(mocks.auditGatewayServiceConfig).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
|
||||
Reference in New Issue
Block a user