A tool for people curious about the React Server Components protocol rscexplorer.dev/
rsc react
at main 43 lines 1.3 kB view raw
1import { test, expect, beforeAll, afterAll, afterEach } from "vitest"; 2import { createHelpers, launchBrowser, type TestHelpers } from "./helpers.ts"; 3import type { Browser, Page } from "playwright"; 4 5let browser: Browser; 6let page: Page; 7let h: TestHelpers; 8 9beforeAll(async () => { 10 browser = await launchBrowser(); 11 page = await browser.newPage(); 12 h = createHelpers(page); 13}); 14 15afterAll(async () => { 16 await browser.close(); 17}); 18 19afterEach(async () => { 20 await h.checkNoRemainingSteps(); 21}); 22 23test("binary sample - TypedArray serialization", async () => { 24 await h.load("binary"); 25 await h.stepAll(); 26 27 // Verify the preview shows decoded values for various types 28 expect(await h.preview("ArrayBuffer:")).toContain("0xca"); 29 expect(await h.preview("Int32Array:")).toContain("305419896"); // 0x12345678 30 expect(await h.preview("Float64Array:")).toContain("3.14159"); 31}); 32 33test("binary sample - rows show hex bytes", async () => { 34 await h.load("binary"); 35 await h.stepAll(); 36 37 const rows = await h.getRows(); 38 39 // Uint8Array([0xDE, 0xAD, 0xBE, 0xEF]) 40 expect(rows.some((r) => r.text && /de ad be ef/i.test(r.text))).toBe(true); 41 // ArrayBuffer with 0xCA, 0xFE, 0xBA, 0xBE 42 expect(rows.some((r) => r.text && /ca fe ba be/i.test(r.text))).toBe(true); 43});