import { describe, expect, it } from "vitest"; import { readBody, resolveTargetIdFromBody, resolveTargetIdFromQuery } from "./agent.shared.js"; import type { BrowserRequest } from "./types.js"; function requestWithBody(body: unknown): BrowserRequest { return { params: {}, query: {}, body, }; } describe("browser route shared helpers", () => { describe("readBody", () => { it("returns object bodies", () => { expect(readBody(requestWithBody({ one: 1 }))).toEqual({ one: 1 }); }); it("normalizes non-object bodies to empty object", () => { expect(readBody(requestWithBody(null))).toEqual({}); expect(readBody(requestWithBody("text"))).toEqual({}); expect(readBody(requestWithBody(["x"]))).toEqual({}); }); }); describe("target id parsing", () => { it("extracts and trims targetId from body", () => { expect(resolveTargetIdFromBody({ targetId: " tab-1 " })).toBe("tab-1"); expect(resolveTargetIdFromBody({ targetId: " " })).toBeUndefined(); expect(resolveTargetIdFromBody({ targetId: 123 })).toBeUndefined(); }); it("extracts and trims targetId from query", () => { expect(resolveTargetIdFromQuery({ targetId: " tab-2 " })).toBe("tab-2"); expect(resolveTargetIdFromQuery({ targetId: "" })).toBeUndefined(); expect(resolveTargetIdFromQuery({ targetId: false })).toBeUndefined(); }); }); });