AkurAI Build
Menu

popagent

public

Latest 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" } }]);
  });
});