mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-13 23:56:07 +00:00
test: guard messaging extension mock calls
This commit is contained in:
@@ -264,7 +264,7 @@ describe("media-chunked: ChunkedMediaApi.uploadChunked", () => {
|
||||
|
||||
// Progress callback hit 3 times with monotonically-increasing counts.
|
||||
expect(onProgress).toHaveBeenCalledTimes(3);
|
||||
const last = onProgress.mock.calls[2][0];
|
||||
const last = onProgress.mock.calls.at(2)?.[0];
|
||||
expect(last.completedParts).toBe(3);
|
||||
expect(last.totalParts).toBe(3);
|
||||
expect(last.uploadedBytes).toBe(FIXTURE_BUFFER.length);
|
||||
|
||||
@@ -77,6 +77,6 @@ describe("trySlashCommand", () => {
|
||||
expect(result).toBe("handled");
|
||||
expect(writes).toHaveLength(1);
|
||||
expect(qqbot?.streaming).toBe(true);
|
||||
expect(vi.mocked(sendText).mock.calls[0]?.[1]).toContain("已开启");
|
||||
expect(vi.mocked(sendText).mock.calls.at(0)?.[1]).toContain("已开启");
|
||||
});
|
||||
});
|
||||
|
||||
@@ -202,7 +202,7 @@ describe("dispatchOutbound", () => {
|
||||
accountId: "qq-main",
|
||||
});
|
||||
expect(audioFileToSilkBase64Mock).toHaveBeenCalledWith("/tmp/openclaw-qqbot/tts.wav");
|
||||
const sentMedia = sendMediaMock.mock.calls[0]?.[0] as
|
||||
const sentMedia = sendMediaMock.mock.calls.at(0)?.[0] as
|
||||
| { kind?: string; source?: unknown; msgId?: string; ttsText?: string }
|
||||
| undefined;
|
||||
expect(sentMedia?.kind).toBe("voice");
|
||||
|
||||
@@ -87,7 +87,7 @@ describe("Synology channel wiring integration", () => {
|
||||
);
|
||||
expect(registerPluginHttpRouteMock).toHaveBeenCalledTimes(1);
|
||||
|
||||
const firstCall = registerPluginHttpRouteMock.mock.calls[0];
|
||||
const firstCall = registerPluginHttpRouteMock.mock.calls.at(0);
|
||||
if (!firstCall) {
|
||||
throw new Error("Expected registerPluginHttpRoute to be called");
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ function countMatching<T>(items: readonly T[], predicate: (item: T) => boolean):
|
||||
|
||||
function deliveredMessage(deliver: ReturnType<typeof vi.fn>) {
|
||||
expect(deliver).toHaveBeenCalledTimes(1);
|
||||
const message = deliver.mock.calls[0]?.[0] as
|
||||
const message = deliver.mock.calls.at(0)?.[0] as
|
||||
| {
|
||||
accountId?: unknown;
|
||||
body?: unknown;
|
||||
|
||||
@@ -99,7 +99,7 @@ describe("buildTelegramMessageContext DM topic threadId in deliveryContext (#889
|
||||
|
||||
expect(ctx?.ctxPayload.ReplyToBody).toBe("parent");
|
||||
expect(buildChannelTurnContextMock).toHaveBeenCalledOnce();
|
||||
const [turnOptions] = buildChannelTurnContextMock.mock.calls[0] ?? [];
|
||||
const [turnOptions] = buildChannelTurnContextMock.mock.calls.at(0) ?? [];
|
||||
expect(turnOptions?.channel).toBe("telegram");
|
||||
expect(turnOptions?.from).toBe("telegram:1234");
|
||||
expect(turnOptions?.message.rawBody).toBe("hello");
|
||||
|
||||
@@ -146,7 +146,7 @@ describe("buildTelegramMessageContext reactions", () => {
|
||||
expect(controller.setQueued).toHaveBeenCalledTimes(1);
|
||||
expect(createStatusReactionController).toHaveBeenCalledTimes(1);
|
||||
|
||||
const params = createStatusReactionController.mock.calls[0]?.[0];
|
||||
const params = createStatusReactionController.mock.calls.at(0)?.[0];
|
||||
expect(params?.initialEmoji).toBe("👀");
|
||||
expect(params?.emojis?.done).toBe("✅");
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ async function buildForumTopicMessageContext(accountId?: string) {
|
||||
function expectRouteArgs(): Record<string, unknown> {
|
||||
expect(resolveTelegramConversationRouteMock).toHaveBeenCalledTimes(1);
|
||||
return (
|
||||
resolveTelegramConversationRouteMock.mock.calls[0] as unknown as [Record<string, unknown>]
|
||||
resolveTelegramConversationRouteMock.mock.calls.at(0) as unknown as [Record<string, unknown>]
|
||||
)[0];
|
||||
}
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ export async function waitForRegisteredCommands(
|
||||
await vi.waitFor(() => {
|
||||
expect(setMyCommands).toHaveBeenCalled();
|
||||
});
|
||||
return setMyCommands.mock.calls[0]?.[0] as RegisteredCommand[];
|
||||
return setMyCommands.mock.calls.at(0)?.[0] as RegisteredCommand[];
|
||||
}
|
||||
|
||||
export function resetNativeCommandMenuMocks() {
|
||||
|
||||
@@ -222,7 +222,7 @@ describe("createTelegramBot command menu", () => {
|
||||
|
||||
await commandsSynced;
|
||||
|
||||
const registered = setMyCommandsSpy.mock.calls[0]?.[0] as Array<{
|
||||
const registered = setMyCommandsSpy.mock.calls.at(0)?.[0] as Array<{
|
||||
command: string;
|
||||
description: string;
|
||||
}>;
|
||||
|
||||
@@ -297,7 +297,7 @@ describe("telegramMessageActions", () => {
|
||||
toolContext: "toolContext" in testCase ? testCase.toolContext : undefined,
|
||||
});
|
||||
|
||||
const call = handleTelegramActionMock.mock.calls[0]?.[0] as
|
||||
const call = handleTelegramActionMock.mock.calls.at(0)?.[0] as
|
||||
| Record<string, unknown>
|
||||
| undefined;
|
||||
if (!call) {
|
||||
|
||||
@@ -209,7 +209,7 @@ describe("probeTelegram retry logic", () => {
|
||||
allows_users_to_create_topics: false,
|
||||
});
|
||||
expect(fetchMock).toHaveBeenCalledTimes(1);
|
||||
expect(fetchMock.mock.calls[0]?.[0]).toBe("https://api.telegram.org/bottest-token/getMe");
|
||||
expect(fetchMock.mock.calls.at(0)?.[0]).toBe("https://api.telegram.org/bottest-token/getMe");
|
||||
});
|
||||
|
||||
it("uses resolver-scoped Telegram fetch with probe network options", async () => {
|
||||
|
||||
@@ -48,7 +48,7 @@ describe("tokenjuice bundled plugin", () => {
|
||||
|
||||
expect(createTokenjuiceOpenClawEmbeddedExtension).toHaveBeenCalledTimes(1);
|
||||
expect(tokenjuiceFactory).toHaveBeenCalledTimes(1);
|
||||
const registration = registerAgentToolResultMiddleware.mock.calls[0];
|
||||
const registration = registerAgentToolResultMiddleware.mock.calls.at(0);
|
||||
expect(typeof registration?.[0]).toBe("function");
|
||||
expect(registration?.[1]).toEqual({ runtimes: ["pi", "codex"] });
|
||||
});
|
||||
|
||||
@@ -118,7 +118,10 @@ describe("vllm provider discovery contract", () => {
|
||||
apiKey: "env-vllm-key",
|
||||
});
|
||||
expect(discoverOpenAICompatibleSelfHostedProviderMock).toHaveBeenCalledTimes(1);
|
||||
const [discoveryParams] = discoverOpenAICompatibleSelfHostedProviderMock.mock.calls[0];
|
||||
const [discoveryParams] = discoverOpenAICompatibleSelfHostedProviderMock.mock.calls.at(0) ?? [];
|
||||
if (discoveryParams === undefined) {
|
||||
throw new Error("expected discovery parameters");
|
||||
}
|
||||
expect(discoveryParams.providerId).toBe("vllm");
|
||||
expect(discoveryParams.buildProvider).toBeTypeOf("function");
|
||||
});
|
||||
|
||||
@@ -54,7 +54,7 @@ describe("vydra speech provider", () => {
|
||||
});
|
||||
|
||||
expect(fetchMock).toHaveBeenCalledTimes(2);
|
||||
const [url, init] = fetchMock.mock.calls[0] as [string, RequestInit];
|
||||
const [url, init] = fetchMock.mock.calls.at(0) as [string, RequestInit];
|
||||
expect(url).toBe("https://www.vydra.ai/api/v1/models/elevenlabs/tts");
|
||||
expect(init.method).toBe("POST");
|
||||
expect(init.body).toBe(
|
||||
|
||||
@@ -162,7 +162,7 @@ describe("buildXiaomiSpeechProvider", () => {
|
||||
expect(result.audioBuffer.toString()).toBe("fake-mp3-audio");
|
||||
|
||||
expect(mockFetch).toHaveBeenCalledOnce();
|
||||
const [url, init] = mockFetch.mock.calls[0];
|
||||
const [url, init] = mockFetch.mock.calls.at(0) ?? [];
|
||||
expect(url).toBe("https://api.xiaomimimo.com/v1/chat/completions");
|
||||
expect(init?.headers).toEqual({
|
||||
"api-key": "sk-test",
|
||||
|
||||
@@ -84,7 +84,7 @@ describe("Zalo pairing lifecycle", () => {
|
||||
meta: { name: "Unauthorized User" },
|
||||
});
|
||||
expect(sendMessageMock).toHaveBeenCalledTimes(1);
|
||||
const [sendToken, sendPayload, sendOptions] = sendMessageMock.mock.calls[0] as [
|
||||
const [sendToken, sendPayload, sendOptions] = sendMessageMock.mock.calls.at(0) as [
|
||||
string,
|
||||
{ chat_id?: string; text?: string },
|
||||
unknown,
|
||||
|
||||
@@ -112,7 +112,7 @@ describe("Zalo reply-once lifecycle", () => {
|
||||
expect(recordArgs?.ctx?.To).toBe("zalo:dm-chat-1");
|
||||
expect(recordArgs?.ctx?.MessageSid).toContain("zalo-replay-");
|
||||
expect(sendMessageMock).toHaveBeenCalledTimes(1);
|
||||
const [sendToken, sendPayload, sendOptions] = sendMessageMock.mock.calls[0] as [
|
||||
const [sendToken, sendPayload, sendOptions] = sendMessageMock.mock.calls.at(0) as [
|
||||
string,
|
||||
{ chat_id?: string; text?: string },
|
||||
unknown,
|
||||
|
||||
Reference in New Issue
Block a user