


























@@ -2,7 +2,6 @@ import {
22implicitMentionKindWhen,
33resolveInboundMentionDecision,
44} from "openclaw/plugin-sdk/channel-mention-gating";
5-import { createPluginRuntimeMediaMock } from "openclaw/plugin-sdk/channel-test-helpers";
65import { vi } from "vitest";
76import type { PluginRuntime } from "./runtime-api.js";
87import { setMatrixRuntime } from "./runtime.js";
@@ -21,6 +20,33 @@ type MatrixRuntimeStub = {
2120state: Pick<NonNullable<PluginRuntime["state"]>, "resolveStateDir">;
2221};
232223+function createMatrixRuntimeMediaMock(
24+overrides: Partial<NonNullable<PluginRuntime["channel"]>["media"]> = {},
25+): NonNullable<PluginRuntime["channel"]>["media"] {
26+const readRemoteMediaBuffer = vi.fn() as NonNullable<
27+PluginRuntime["channel"]
28+>["media"]["readRemoteMediaBuffer"];
29+return {
30+ readRemoteMediaBuffer,
31+fetchRemoteMedia: readRemoteMediaBuffer as NonNullable<
32+PluginRuntime["channel"]
33+>["media"]["fetchRemoteMedia"],
34+saveRemoteMedia: vi.fn().mockResolvedValue({
35+path: "/tmp/test-media.jpg",
36+contentType: "image/jpeg",
37+}) as NonNullable<PluginRuntime["channel"]>["media"]["saveRemoteMedia"],
38+saveResponseMedia: vi.fn().mockResolvedValue({
39+path: "/tmp/test-media.jpg",
40+contentType: "image/jpeg",
41+}) as NonNullable<PluginRuntime["channel"]>["media"]["saveResponseMedia"],
42+saveMediaBuffer: vi.fn().mockResolvedValue({
43+path: "/tmp/test-media.jpg",
44+contentType: "image/jpeg",
45+}) as NonNullable<PluginRuntime["channel"]>["media"]["saveMediaBuffer"],
46+ ...overrides,
47+};
48+}
49+2450export function installMatrixTestRuntime(options: MatrixTestRuntimeOptions = {}): void {
2551const defaultStateDirResolver: NonNullable<PluginRuntime["state"]>["resolveStateDir"] = (
2652_env,
@@ -76,9 +102,9 @@ export function installMatrixMonitorTestRuntime(
76102 implicitMentionKindWhen,
77103 resolveInboundMentionDecision,
78104},
79-media: createPluginRuntimeMediaMock({
105+media: createMatrixRuntimeMediaMock({
80106saveMediaBuffer: options.saveMediaBuffer ?? vi.fn(),
81-}) as unknown as PluginRuntime["channel"]["media"],
107+}),
82108},
83109});
84110}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。