test: inline bluebubbles action mocks

This commit is contained in:
Peter Steinberger 2026-03-17 08:03:58 +00:00
parent f2107a53cb
commit 9b22bd41d8
1 changed files with 5 additions and 24 deletions

View File

@ -1,7 +1,12 @@
import type { OpenClawConfig } from "openclaw/plugin-sdk/bluebubbles";
import { describe, expect, it, vi, beforeEach } from "vitest";
import { bluebubblesMessageActions } from "./actions.js";
import { sendBlueBubblesAttachment } from "./attachments.js";
import { editBlueBubblesMessage, setGroupIconBlueBubbles } from "./chat.js";
import { resolveBlueBubblesMessageId } from "./monitor.js";
import { getCachedBlueBubblesPrivateApiStatus } from "./probe.js";
import { sendBlueBubblesReaction } from "./reactions.js";
import { resolveChatGuidForTarget, sendMessageBlueBubbles } from "./send.js";
vi.mock("./accounts.js", async () => {
const { createBlueBubblesAccountsMockModule } = await import("./test-harness.js");
@ -277,7 +282,6 @@ describe("bluebubblesMessageActions", () => {
});
it("throws when chatGuid cannot be resolved", async () => {
const { resolveChatGuidForTarget } = await import("./send.js");
vi.mocked(resolveChatGuidForTarget).mockResolvedValueOnce(null);
const cfg: OpenClawConfig = {
@ -299,8 +303,6 @@ describe("bluebubblesMessageActions", () => {
});
it("sends reaction successfully with chatGuid", async () => {
const { sendBlueBubblesReaction } = await import("./reactions.js");
const result = await runReactAction({
emoji: "❤️",
messageId: "msg-123",
@ -321,8 +323,6 @@ describe("bluebubblesMessageActions", () => {
});
it("sends reaction removal successfully", async () => {
const { sendBlueBubblesReaction } = await import("./reactions.js");
const result = await runReactAction({
emoji: "❤️",
messageId: "msg-123",
@ -342,8 +342,6 @@ describe("bluebubblesMessageActions", () => {
});
it("resolves chatGuid from to parameter", async () => {
const { sendBlueBubblesReaction } = await import("./reactions.js");
const { resolveChatGuidForTarget } = await import("./send.js");
vi.mocked(resolveChatGuidForTarget).mockResolvedValueOnce("iMessage;-;+15559876543");
const cfg: OpenClawConfig = {
@ -374,8 +372,6 @@ describe("bluebubblesMessageActions", () => {
});
it("passes partIndex when provided", async () => {
const { sendBlueBubblesReaction } = await import("./reactions.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {
@ -404,8 +400,6 @@ describe("bluebubblesMessageActions", () => {
});
it("uses toolContext currentChannelId when no explicit target is provided", async () => {
const { sendBlueBubblesReaction } = await import("./reactions.js");
const { resolveChatGuidForTarget } = await import("./send.js");
vi.mocked(resolveChatGuidForTarget).mockResolvedValueOnce("iMessage;-;+15550001111");
const cfg: OpenClawConfig = {
@ -442,8 +436,6 @@ describe("bluebubblesMessageActions", () => {
});
it("resolves short messageId before reacting", async () => {
const { resolveBlueBubblesMessageId } = await import("./monitor.js");
const { sendBlueBubblesReaction } = await import("./reactions.js");
vi.mocked(resolveBlueBubblesMessageId).mockReturnValueOnce("resolved-uuid");
const cfg: OpenClawConfig = {
@ -475,7 +467,6 @@ describe("bluebubblesMessageActions", () => {
});
it("propagates short-id errors from the resolver", async () => {
const { resolveBlueBubblesMessageId } = await import("./monitor.js");
vi.mocked(resolveBlueBubblesMessageId).mockImplementationOnce(() => {
throw new Error("short id expired");
});
@ -504,8 +495,6 @@ describe("bluebubblesMessageActions", () => {
});
it("accepts message param for edit action", async () => {
const { editBlueBubblesMessage } = await import("./chat.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {
@ -530,8 +519,6 @@ describe("bluebubblesMessageActions", () => {
});
it("accepts message/target aliases for sendWithEffect", async () => {
const { sendMessageBlueBubbles } = await import("./send.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {
@ -563,8 +550,6 @@ describe("bluebubblesMessageActions", () => {
});
it("passes asVoice through sendAttachment", async () => {
const { sendBlueBubblesAttachment } = await import("./attachments.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {
@ -619,8 +604,6 @@ describe("bluebubblesMessageActions", () => {
});
it("sets group icon successfully with chatGuid and buffer", async () => {
const { setGroupIconBlueBubbles } = await import("./chat.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {
@ -658,8 +641,6 @@ describe("bluebubblesMessageActions", () => {
});
it("uses default filename when not provided for setGroupIcon", async () => {
const { setGroupIconBlueBubbles } = await import("./chat.js");
const cfg: OpenClawConfig = {
channels: {
bluebubbles: {