mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 11:10:45 +00:00
refactor: trim telegram test harness exports
This commit is contained in:
@@ -9,9 +9,8 @@ type AsyncUnknownMock = Mock<(...args: unknown[]) => Promise<unknown>>;
|
||||
type BuildTelegramMessageContextForTest =
|
||||
typeof import("./bot-message-context.test-harness.js").buildTelegramMessageContextForTest;
|
||||
type BuildTelegramMessageContextForTestParams = Parameters<BuildTelegramMessageContextForTest>[0];
|
||||
type TelegramTestSessionRuntime = NonNullable<
|
||||
import("./bot-message-context.types.js").BuildTelegramMessageContextParams["sessionRuntime"]
|
||||
>;
|
||||
type BuildTelegramMessageContextParams =
|
||||
import("./bot-message-context.types.js").BuildTelegramMessageContextParams;
|
||||
|
||||
const hoisted = vi.hoisted((): { recordInboundSessionMock: AsyncUnknownMock } => ({
|
||||
recordInboundSessionMock: vi.fn().mockResolvedValue(undefined),
|
||||
@@ -19,15 +18,17 @@ const hoisted = vi.hoisted((): { recordInboundSessionMock: AsyncUnknownMock } =>
|
||||
|
||||
export const recordInboundSessionMock: AsyncUnknownMock = hoisted.recordInboundSessionMock;
|
||||
const finalizeInboundContextForTest = finalizeTelegramInboundContextForTest as NonNullable<
|
||||
TelegramTestSessionRuntime["finalizeInboundContext"]
|
||||
NonNullable<BuildTelegramMessageContextParams["sessionRuntime"]>["finalizeInboundContext"]
|
||||
>;
|
||||
const recordInboundSessionForTest: NonNullable<
|
||||
TelegramTestSessionRuntime["recordInboundSession"]
|
||||
NonNullable<BuildTelegramMessageContextParams["sessionRuntime"]>["recordInboundSession"]
|
||||
> = async (params) => {
|
||||
await recordInboundSessionMock(params);
|
||||
};
|
||||
|
||||
export const telegramRouteTestSessionRuntime = {
|
||||
export const telegramRouteTestSessionRuntime: NonNullable<
|
||||
BuildTelegramMessageContextParams["sessionRuntime"]
|
||||
> = {
|
||||
finalizeInboundContext: finalizeInboundContextForTest,
|
||||
readSessionUpdatedAt: () => undefined,
|
||||
recordInboundSession: recordInboundSessionForTest,
|
||||
@@ -35,7 +36,7 @@ export const telegramRouteTestSessionRuntime = {
|
||||
route.lastRoutePolicy === "main" ? route.mainSessionKey : sessionKey,
|
||||
resolvePinnedMainDmOwnerFromAllowlist: () => null,
|
||||
resolveStorePath: () => "/tmp/openclaw/session-store.json",
|
||||
} satisfies TelegramTestSessionRuntime;
|
||||
};
|
||||
|
||||
export async function loadTelegramMessageContextRouteHarness() {
|
||||
const { buildTelegramMessageContextForTest } =
|
||||
|
||||
@@ -4,7 +4,6 @@ import type { TelegramAccountConfig } from "openclaw/plugin-sdk/config-types";
|
||||
import type { MockFn } from "openclaw/plugin-sdk/plugin-test-runtime";
|
||||
import type { RuntimeEnv } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { vi } from "vitest";
|
||||
import { createNativeCommandTestParams } from "./bot-native-commands.fixture-test-support.js";
|
||||
import type { RegisterTelegramNativeCommandsParams } from "./bot-native-commands.js";
|
||||
import { registerTelegramNativeCommands } from "./bot-native-commands.js";
|
||||
|
||||
@@ -42,10 +41,6 @@ const pluginCommandMocks = vi.hoisted(() => ({
|
||||
matchPluginCommand: vi.fn<MatchPluginCommandFn>(() => null),
|
||||
executePluginCommand: vi.fn<ExecutePluginCommandFn>(async () => ({ text: "ok" })),
|
||||
}));
|
||||
export const getPluginCommandSpecs = pluginCommandMocks.getPluginCommandSpecs;
|
||||
export const matchPluginCommand = pluginCommandMocks.matchPluginCommand;
|
||||
export const executePluginCommand = pluginCommandMocks.executePluginCommand;
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/plugin-runtime", () => ({
|
||||
getPluginCommandSpecs: pluginCommandMocks.getPluginCommandSpecs,
|
||||
matchPluginCommand: pluginCommandMocks.matchPluginCommand,
|
||||
@@ -74,13 +69,9 @@ const replyPipelineMocks = vi.hoisted(() => {
|
||||
getAgentScopedMediaLocalRoots: vi.fn<GetAgentScopedMediaLocalRootsFn>(() => []),
|
||||
};
|
||||
});
|
||||
export const dispatchReplyWithBufferedBlockDispatcher =
|
||||
replyPipelineMocks.dispatchReplyWithBufferedBlockDispatcher;
|
||||
|
||||
const deliveryMocks = vi.hoisted(() => ({
|
||||
deliverReplies: vi.fn(async () => {}),
|
||||
}));
|
||||
export const deliverReplies = deliveryMocks.deliverReplies;
|
||||
|
||||
vi.mock("./bot-native-commands.runtime.js", () => ({
|
||||
getPluginCommandSpecs: pluginCommandMocks.getPluginCommandSpecs,
|
||||
@@ -120,7 +111,6 @@ vi.mock("openclaw/plugin-sdk/conversation-runtime", () => ({
|
||||
}));
|
||||
vi.mock("./bot/delivery.js", () => ({ deliverReplies: deliveryMocks.deliverReplies }));
|
||||
vi.mock("./bot/delivery.replies.js", () => ({ deliverReplies: deliveryMocks.deliverReplies }));
|
||||
export { createNativeCommandTestParams };
|
||||
|
||||
export function createNativeCommandsHarness(params?: {
|
||||
cfg?: OpenClawConfig;
|
||||
|
||||
@@ -13,10 +13,10 @@ type DispatchReplyWithBufferedBlockDispatcherFn =
|
||||
type DispatchReplyHarnessParams = Parameters<DispatchReplyWithBufferedBlockDispatcherFn>[0];
|
||||
type FetchRemoteMediaFn = typeof import("openclaw/plugin-sdk/media-runtime").fetchRemoteMedia;
|
||||
|
||||
export const useSpy: Mock = vi.fn();
|
||||
export const middlewareUseSpy: Mock = vi.fn();
|
||||
const useSpy: Mock = vi.fn();
|
||||
const middlewareUseSpy: Mock = vi.fn();
|
||||
export const onSpy: Mock = vi.fn();
|
||||
export const stopSpy: Mock = vi.fn();
|
||||
const stopSpy: Mock = vi.fn();
|
||||
export const sendChatActionSpy: Mock = vi.fn();
|
||||
|
||||
function defaultUndiciFetch(input: RequestInfo | URL, init?: RequestInit) {
|
||||
@@ -25,7 +25,7 @@ function defaultUndiciFetch(input: RequestInfo | URL, init?: RequestInit) {
|
||||
|
||||
export const undiciFetchSpy: Mock = vi.fn(defaultUndiciFetch);
|
||||
|
||||
export function resetUndiciFetchMock() {
|
||||
function resetUndiciFetchMock() {
|
||||
undiciFetchSpy.mockReset();
|
||||
undiciFetchSpy.mockImplementation(defaultUndiciFetch);
|
||||
}
|
||||
@@ -84,7 +84,7 @@ export function setNextSavedMediaPath(params: {
|
||||
);
|
||||
}
|
||||
|
||||
export function resetSaveMediaBufferMock() {
|
||||
function resetSaveMediaBufferMock() {
|
||||
saveMediaBufferSpy.mockReset();
|
||||
saveMediaBufferSpy.mockImplementation(defaultSaveMediaBuffer);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { vi } from "vitest";
|
||||
|
||||
export type TestDraftStream = {
|
||||
type TestDraftStream = {
|
||||
update: ReturnType<typeof vi.fn<(text: string) => void>>;
|
||||
flush: ReturnType<typeof vi.fn<() => Promise<void>>>;
|
||||
messageId: ReturnType<typeof vi.fn<() => number | undefined>>;
|
||||
|
||||
@@ -4,15 +4,15 @@ import { beforeAll, beforeEach, describe, expect, it, vi, type Mock } from "vite
|
||||
type UnknownMock = Mock<(...args: unknown[]) => unknown>;
|
||||
type AsyncUnknownMock = Mock<(...args: unknown[]) => Promise<unknown>>;
|
||||
|
||||
export const readConfigFileSnapshotForWrite: AsyncUnknownMock = vi.fn();
|
||||
export const writeConfigFile: AsyncUnknownMock = vi.fn();
|
||||
export const replaceConfigFile: AsyncUnknownMock = vi.fn(async (params: unknown) => {
|
||||
const readConfigFileSnapshotForWrite: AsyncUnknownMock = vi.fn();
|
||||
const writeConfigFile: AsyncUnknownMock = vi.fn();
|
||||
const replaceConfigFile: AsyncUnknownMock = vi.fn(async (params: unknown) => {
|
||||
const record = params as { nextConfig?: unknown; writeOptions?: unknown };
|
||||
await writeConfigFile(record.nextConfig, record.writeOptions);
|
||||
});
|
||||
export const loadCronStore: AsyncUnknownMock = vi.fn();
|
||||
export const resolveCronStorePath: UnknownMock = vi.fn();
|
||||
export const saveCronStore: AsyncUnknownMock = vi.fn();
|
||||
const loadCronStore: AsyncUnknownMock = vi.fn();
|
||||
const resolveCronStorePath: UnknownMock = vi.fn();
|
||||
const saveCronStore: AsyncUnknownMock = vi.fn();
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/config-mutation", async () => {
|
||||
const actual = await vi.importActual<typeof import("openclaw/plugin-sdk/config-mutation")>(
|
||||
|
||||
Reference in New Issue
Block a user