import type { WebClient } from "@slack/web-api" ;
import { vi } from "vitest" ;
export type SlackEditTestClient = WebClient & {
chat: {
update: ReturnType<typeof vi.fn>;
};
};
export type SlackSendTestClient = WebClient & {
conversations: {
open: ReturnType<typeof vi.fn>;
};
chat: {
postMessage: ReturnType<typeof vi.fn>;
};
};
const slackBlockTestState = vi.hoisted(() => ({
account: {
accountId: "default" ,
botToken: "xoxb-test" ,
botTokenSource: "config" ,
config: {},
},
config: {},
}));
vi.mock("openclaw/plugin-sdk/config-runtime" , async () => {
const actual = await vi.importActual<typeof import ("openclaw/plugin-sdk/config-runtime" )>(
"openclaw/plugin-sdk/config-runtime" ,
);
return {
...actual,
loadConfig: () => slackBlockTestState.config,
};
});
vi.mock("./accounts.js" , async () => {
const actual = await vi.importActual<typeof import ("./accounts.js" )>("./accounts.js" );
return {
...actual,
resolveSlackAccount: () => slackBlockTestState.account,
};
});
// Kept for compatibility with existing tests; mocks install at module evaluation.
export function installSlackBlockTestMocks() {
return ;
}
export function createSlackEditTestClient(): SlackEditTestClient {
return {
chat: {
update: vi.fn(async () => ({ ok: true })),
},
} as unknown as SlackEditTestClient;
}
export function createSlackSendTestClient(): SlackSendTestClient {
return {
conversations: {
open: vi.fn(async () => ({ channel: { id: "D123" } })),
},
chat: {
postMessage: vi.fn(async () => ({ ts: "171234.567" })),
},
} as unknown as SlackSendTestClient;
}
Messung V0.5 in Prozent C=96 H=95 G=95
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-05)
¤
*© Formatika GbR, Deutschland