Menu
popagent
publicLatest change 7f0ff66d6d9fb6468416c58bee46bd3d08169501 - Checkpoint browser channels and memory work by AkurAI Build
import { describe, expect, test } from "bun:test";
import { parseBrowserSse } from "./browser-stream";
describe("browser SSE parser", () => {
test("parses complete frame and URL events while retaining partial input", () => {
const parsed = parseBrowserSse('event: frame\ndata: {"data":"abc"}\n\nevent: url\ndata: {"url":"https://example.com"}\n\nevent: frame\ndata: {"data":');
expect(parsed.events).toEqual([
{ event: "frame", data: { data: "abc" } },
{ event: "url", data: { url: "https://example.com" } },
]);
expect(parsed.rest).toBe('event: frame\ndata: {"data":');
});
test("ignores malformed payloads without discarding subsequent events", () => {
expect(parseBrowserSse('event: frame\ndata: nope\n\nevent: stop\ndata: {"reason":"manual"}\n\n').events)
.toEqual([{ event: "stop", data: { reason: "manual" } }]);
});
});