diff --git a/packages/cms-admin/src/components/editor/rich-text-editor.tsx b/packages/cms-admin/src/components/editor/rich-text-editor.tsx index aa14ca36..dcbe8165 100644 --- a/packages/cms-admin/src/components/editor/rich-text-editor.tsx +++ b/packages/cms-admin/src/components/editor/rich-text-editor.tsx @@ -35,7 +35,7 @@ import { IconUnderline, IconSuperscript, IconSubscript, IconHighlight, IconZoomIn, IconZoomOut, IconProofread, } from "./editor-icons"; -import { Image as LucideImage, Zap, MessageSquareWarning, Code2, ChevronDown, Braces, Shapes } from "lucide-react"; +import { Image as LucideImage, Zap, MessageSquareWarning, Code2, ChevronDown, Braces, Shapes, RemoveFormatting } from "lucide-react"; import { toast } from "sonner"; import { AIMetadataPopover } from "@/components/media/ai-metadata-popover"; import { ProofreadPlugin, proofreadKey, textOffsetToPos } from "./proofread-plugin"; @@ -3163,7 +3163,7 @@ function RichTextEditorInner({ value, onChange, disabled, stickyOffset = 132, fe {(has("bold") || has("italic") || has("strike") || has("code")) && editor.chain().focus().unsetAllMarks().clearNodes().run()}> - + } {(has("bold") || has("italic") || has("strike") || has("code")) && } diff --git a/packages/cms-admin/src/lib/__tests__/webhook-dispatch.test.ts b/packages/cms-admin/src/lib/__tests__/webhook-dispatch.test.ts index db46749d..ecf7e4aa 100644 --- a/packages/cms-admin/src/lib/__tests__/webhook-dispatch.test.ts +++ b/packages/cms-admin/src/lib/__tests__/webhook-dispatch.test.ts @@ -183,7 +183,7 @@ describe("Webhook Dispatch", () => { }); it("returns empty array for empty webhooks list", async () => { - const results = await dispatchWebhooks([], baseEvent, mockFetch); + const results = await dispatchWebhooks([], baseEvent, mockFetch as unknown as typeof fetch); expect(results).toEqual([]); expect(mockFetch).not.toHaveBeenCalled(); }); @@ -194,7 +194,7 @@ describe("Webhook Dispatch", () => { { id: "2", url: "https://hooks.slack.com/services/T/B/x" }, { id: "3", url: "https://example.com/hook" }, ]; - const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch); + const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch as unknown as typeof fetch); expect(mockFetch).toHaveBeenCalledTimes(3); expect(results).toHaveLength(3); expect(results.every((r) => r.success)).toBe(true); @@ -211,7 +211,7 @@ describe("Webhook Dispatch", () => { { id: "2", url: "https://example.com/b" }, { id: "3", url: "https://example.com/c" }, ]; - const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch); + const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch as unknown as typeof fetch); expect(results[0].success).toBe(true); expect(results[1].success).toBe(false); expect(results[1].error).toContain("Connection refused"); @@ -221,7 +221,7 @@ describe("Webhook Dispatch", () => { it("reports HTTP error status codes", async () => { mockFetch.mockResolvedValue({ ok: false, status: 404 }); const webhooks: WebhookEntry[] = [{ id: "1", url: "https://example.com/hook" }]; - const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch); + const results = await dispatchWebhooks(webhooks, baseEvent, mockFetch as unknown as typeof fetch); expect(results[0].success).toBe(false); expect(results[0].statusCode).toBe(404); }); @@ -232,7 +232,7 @@ describe("Webhook Dispatch", () => { { id: "2", url: "https://hooks.slack.com/services/T/B/x" }, { id: "3", url: "https://example.com/hook" }, ]; - await dispatchWebhooks(webhooks, baseEvent, mockFetch); + await dispatchWebhooks(webhooks, baseEvent, mockFetch as unknown as typeof fetch); // Discord const discordBody = JSON.parse(mockFetch.mock.calls[0][1].body);