mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 02:00:21 +00:00
test: trim telegram media retry import cost
This commit is contained in:
@@ -1,27 +1,23 @@
|
||||
import type { Message } from "@grammyjs/types";
|
||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { retryAsync } from "../../../../src/infra/retry.js";
|
||||
import { resolveMedia } from "./delivery.resolve-media.js";
|
||||
import type { TelegramContext } from "./types.js";
|
||||
|
||||
const saveMediaBuffer = vi.fn();
|
||||
const fetchRemoteMedia = vi.fn();
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/media-runtime", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/media-runtime")>();
|
||||
vi.mock("./delivery.resolve-media.runtime.js", () => {
|
||||
return {
|
||||
...actual,
|
||||
saveMediaBuffer: (...args: unknown[]) => saveMediaBuffer(...args),
|
||||
fetchRemoteMedia: (...args: unknown[]) => fetchRemoteMedia(...args),
|
||||
};
|
||||
});
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/runtime-env", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/runtime-env")>();
|
||||
return {
|
||||
...actual,
|
||||
formatErrorMessage: (err: unknown) => (err instanceof Error ? err.message : String(err)),
|
||||
logVerbose: () => {},
|
||||
resolveTelegramApiBase: (apiRoot?: string) =>
|
||||
apiRoot?.trim() ? apiRoot.replace(/\/+$/u, "") : "https://api.telegram.org",
|
||||
retryAsync,
|
||||
saveMediaBuffer: (...args: unknown[]) => saveMediaBuffer(...args),
|
||||
shouldRetryTelegramTransportFallback: vi.fn(() => false),
|
||||
warn: (s: string) => s,
|
||||
danger: (s: string) => s,
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import { fetchRemoteMedia, saveMediaBuffer } from "openclaw/plugin-sdk/media-runtime";
|
||||
import { logVerbose, retryAsync, warn } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";
|
||||
import { resolveTelegramApiBase, shouldRetryTelegramTransportFallback } from "../fetch.js";
|
||||
|
||||
export {
|
||||
fetchRemoteMedia,
|
||||
formatErrorMessage,
|
||||
logVerbose,
|
||||
resolveTelegramApiBase,
|
||||
retryAsync,
|
||||
saveMediaBuffer,
|
||||
shouldRetryTelegramTransportFallback,
|
||||
warn,
|
||||
};
|
||||
@@ -1,16 +1,17 @@
|
||||
import path from "node:path";
|
||||
import { GrammyError } from "grammy";
|
||||
import { fetchRemoteMedia } from "openclaw/plugin-sdk/media-runtime";
|
||||
import { saveMediaBuffer } from "openclaw/plugin-sdk/media-runtime";
|
||||
import { logVerbose, warn } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { retryAsync } from "openclaw/plugin-sdk/runtime-env";
|
||||
import { formatErrorMessage } from "openclaw/plugin-sdk/ssrf-runtime";
|
||||
import {
|
||||
resolveTelegramApiBase,
|
||||
shouldRetryTelegramTransportFallback,
|
||||
type TelegramTransport,
|
||||
} from "../fetch.js";
|
||||
import type { TelegramTransport } from "../fetch.js";
|
||||
import { cacheSticker, getCachedSticker } from "../sticker-cache.js";
|
||||
import {
|
||||
fetchRemoteMedia,
|
||||
formatErrorMessage,
|
||||
logVerbose,
|
||||
resolveTelegramApiBase,
|
||||
retryAsync,
|
||||
saveMediaBuffer,
|
||||
shouldRetryTelegramTransportFallback,
|
||||
warn,
|
||||
} from "./delivery.resolve-media.runtime.js";
|
||||
import { resolveTelegramMediaPlaceholder } from "./helpers.js";
|
||||
import type { StickerMetadata, TelegramContext } from "./types.js";
|
||||
|
||||
|
||||
@@ -56,24 +56,36 @@ vi.mock("undici", () => ({
|
||||
setGlobalDispatcher,
|
||||
}));
|
||||
|
||||
vi.mock("openclaw/plugin-sdk/runtime-env", async (importOriginal) => {
|
||||
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/runtime-env")>();
|
||||
return {
|
||||
...actual,
|
||||
createSubsystemLogger: () => ({
|
||||
vi.mock("openclaw/plugin-sdk/runtime-env", () => ({
|
||||
createSubsystemLogger: () => ({
|
||||
info: loggerInfo,
|
||||
debug: loggerDebug,
|
||||
warn: vi.fn(),
|
||||
error: vi.fn(),
|
||||
child: () => ({
|
||||
info: loggerInfo,
|
||||
debug: loggerDebug,
|
||||
warn: vi.fn(),
|
||||
error: vi.fn(),
|
||||
child: () => ({
|
||||
info: loggerInfo,
|
||||
debug: loggerDebug,
|
||||
warn: vi.fn(),
|
||||
error: vi.fn(),
|
||||
}),
|
||||
}),
|
||||
};
|
||||
});
|
||||
}),
|
||||
isTruthyEnvValue: (value?: string) => {
|
||||
if (typeof value !== "string") {
|
||||
return false;
|
||||
}
|
||||
switch (value.trim().toLowerCase()) {
|
||||
case "":
|
||||
case "0":
|
||||
case "false":
|
||||
case "no":
|
||||
case "off":
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
},
|
||||
isWSL2Sync: () => false,
|
||||
}));
|
||||
|
||||
let resolveFetch: typeof import("../../../src/infra/fetch.js").resolveFetch;
|
||||
let resolveTelegramFetch: typeof import("./fetch.js").resolveTelegramFetch;
|
||||
|
||||
Reference in New Issue
Block a user