Files
openclaw/src/commands/channels.mock-harness.ts
qsam 47839d3b9a fix(mattermost): detect stale websocket after bot disable/enable cycle (#53604)
Merged via squash.

Prepared head SHA: 818d437a54
Co-authored-by: Qinsam <19649380+Qinsam@users.noreply.github.com>
Co-authored-by: mukhtharcm <56378562+mukhtharcm@users.noreply.github.com>
Reviewed-by: @mukhtharcm
2026-03-30 07:54:59 +05:30

50 lines
1.6 KiB
TypeScript

import { vi } from "vitest";
import type { MockFn } from "../test-utils/vitest-mock-fn.js";
function buildBundledPluginModuleId(pluginId: string, artifactBasename: string): string {
return ["..", "..", "extensions", pluginId, artifactBasename].join("/");
}
const readConfigFileSnapshotMock = vi.fn() as unknown as MockFn;
const writeConfigFileMock = vi.fn().mockResolvedValue(undefined) as unknown as MockFn;
const replaceConfigFileMock = vi.fn(async (params: { nextConfig: unknown }) => {
await writeConfigFileMock(params.nextConfig);
}) as unknown as MockFn;
export const configMocks: {
readConfigFileSnapshot: MockFn;
writeConfigFile: MockFn;
replaceConfigFile: MockFn;
} = {
readConfigFileSnapshot: readConfigFileSnapshotMock,
writeConfigFile: writeConfigFileMock,
replaceConfigFile: replaceConfigFileMock,
};
export const offsetMocks: {
deleteTelegramUpdateOffset: MockFn;
} = {
deleteTelegramUpdateOffset: vi.fn().mockResolvedValue(undefined) as unknown as MockFn,
};
vi.mock("../config/config.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("../config/config.js")>();
return {
...actual,
readConfigFileSnapshot: configMocks.readConfigFileSnapshot,
writeConfigFile: configMocks.writeConfigFile,
replaceConfigFile: configMocks.replaceConfigFile,
};
});
vi.mock(
buildBundledPluginModuleId("telegram", "update-offset-runtime-api.js"),
async (importOriginal) => {
const actual: Record<string, unknown> = await importOriginal();
return {
...actual,
deleteTelegramUpdateOffset: offsetMocks.deleteTelegramUpdateOffset,
};
},
);