test: consolidate extension runtime mocks and split bluebubbles webhook auth suite

This commit is contained in:
Peter Steinberger
2026-03-03 02:37:12 +00:00
parent 59567a8c5d
commit 0750fc2de1
6 changed files with 926 additions and 694 deletions

View File

@@ -1,5 +1,6 @@
import type { PluginRuntime, SsrFPolicy } from "openclaw/plugin-sdk";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { createPluginRuntimeMock } from "../../test-utils/plugin-runtime-mock.js";
import {
buildMSTeamsAttachmentPlaceholder,
buildMSTeamsGraphMessageUrls,
@@ -106,19 +107,17 @@ const fetchRemoteMediaMock = vi.fn(async (params: RemoteMediaFetchParams) => {
throw new Error("too many redirects");
});
const runtimeStub = {
const runtimeStub: PluginRuntime = createPluginRuntimeMock({
media: {
detectMime: detectMimeMock as unknown as PluginRuntime["media"]["detectMime"],
detectMime: detectMimeMock,
},
channel: {
media: {
fetchRemoteMedia:
fetchRemoteMediaMock as unknown as PluginRuntime["channel"]["media"]["fetchRemoteMedia"],
saveMediaBuffer:
saveMediaBufferMock as unknown as PluginRuntime["channel"]["media"]["saveMediaBuffer"],
fetchRemoteMedia: fetchRemoteMediaMock,
saveMediaBuffer: saveMediaBufferMock,
},
},
} as unknown as PluginRuntime;
});
type DownloadAttachmentsParams = Parameters<typeof downloadMSTeamsAttachments>[0];
type DownloadGraphMediaParams = Parameters<typeof downloadMSTeamsGraphMedia>[0];

View File

@@ -3,6 +3,7 @@ import os from "node:os";
import path from "node:path";
import { SILENT_REPLY_TOKEN, type PluginRuntime } from "openclaw/plugin-sdk";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { createPluginRuntimeMock } from "../../test-utils/plugin-runtime-mock.js";
import type { StoredConversationReference } from "./conversation-store.js";
const graphUploadMockState = vi.hoisted(() => ({
uploadAndShareOneDrive: vi.fn(),
@@ -38,7 +39,7 @@ const chunkMarkdownText = (text: string, limit: number) => {
return chunks;
};
const runtimeStub = {
const runtimeStub: PluginRuntime = createPluginRuntimeMock({
channel: {
text: {
chunkMarkdownText,
@@ -47,7 +48,7 @@ const runtimeStub = {
convertMarkdownTables: (text: string) => text,
},
},
} as unknown as PluginRuntime;
});
const createNoopAdapter = (): MSTeamsAdapter => ({
continueConversation: async () => {},