51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
|
|
const mocks = vi.hoisted(() => ({
|
|
updateMessage: vi.fn(),
|
|
deleteMessage: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("@hivegrid/chat/message-mutations.server", () => ({
|
|
updateChatMessage: mocks.updateMessage,
|
|
deleteChatMessage: mocks.deleteMessage,
|
|
}));
|
|
|
|
import { editMemberChatMessage, removeMemberChatMessage } from "./ChatMessageMutationsService.server";
|
|
|
|
const context = {
|
|
tenantId: "tenant_1",
|
|
userId: "user_1",
|
|
permissions: ["chat.read_own_channels", "chat.write"],
|
|
} as const;
|
|
|
|
describe("ChatMessageMutationsService", () => {
|
|
beforeEach(() => vi.clearAllMocks());
|
|
|
|
it("passes the fresh route context to an edit mutation", async () => {
|
|
mocks.updateMessage.mockResolvedValue({ replayed: false });
|
|
|
|
await editMemberChatMessage({ context, chatId: "chat_1", messageId: "message_1", requestId: "request_1", body: "Neu" });
|
|
|
|
expect(mocks.updateMessage).toHaveBeenCalledWith({
|
|
...context,
|
|
chatId: "chat_1",
|
|
messageId: "message_1",
|
|
requestId: "request_1",
|
|
body: "Neu",
|
|
});
|
|
});
|
|
|
|
it("passes the stable request id to a delete mutation", async () => {
|
|
mocks.deleteMessage.mockResolvedValue({ replayed: false });
|
|
|
|
await removeMemberChatMessage({ context, chatId: "chat_1", messageId: "message_1", requestId: "request_2" });
|
|
|
|
expect(mocks.deleteMessage).toHaveBeenCalledWith({
|
|
...context,
|
|
chatId: "chat_1",
|
|
messageId: "message_1",
|
|
requestId: "request_2",
|
|
});
|
|
});
|
|
});
|