Skip to content
File

Blob: tests/shared/doc-messages.test.ts

typescript36 lines
1import { describe, expect, it } from "vitest";
2 
3import { parseDocMessage } from "@/shared/doc-messages";
4 
5describe("shared doc messages", () => {
6 it("parses page metadata refresh messages", () => {
7 expect(parseDocMessage(JSON.stringify({ type: "page-metadata-refresh" }))).toEqual({
8 type: "page-metadata-refresh",
9 });
10 });
11 
12 it("parses page metadata updated messages", () => {
13 expect(
14 parseDocMessage(
15 JSON.stringify({
16 type: "page-metadata-updated",
17 pageId: "page-1",
18 icon: "๐Ÿ“„",
19 cover_url: "/uploads/cover-1",
20 }),
21 ),
22 ).toEqual({
23 type: "page-metadata-updated",
24 pageId: "page-1",
25 icon: "๐Ÿ“„",
26 cover_url: "/uploads/cover-1",
27 });
28 });
29 
30 it("rejects invalid message payloads", () => {
31 expect(parseDocMessage(JSON.stringify({ type: "page-metadata-updated", pageId: "page-1", icon: 123 }))).toBeNull();
32 expect(parseDocMessage(JSON.stringify({ type: "unknown" }))).toBeNull();
33 expect(parseDocMessage("{")).toBeNull();
34 });
35});