test(browser): cover shared and storage route parsing helpers

This commit is contained in:
Peter Steinberger
2026-02-18 21:58:01 +00:00
parent 5d98c2ae7e
commit b76e19ceb7
2 changed files with 79 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
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();
});
});
});

View File

@@ -0,0 +1,40 @@
import { describe, expect, it } from "vitest";
import { parseStorageKind, parseStorageMutationRequest } from "./agent.storage.js";
describe("browser storage route parsing", () => {
describe("parseStorageKind", () => {
it("accepts local and session", () => {
expect(parseStorageKind("local")).toBe("local");
expect(parseStorageKind("session")).toBe("session");
});
it("rejects unsupported values", () => {
expect(parseStorageKind("cookie")).toBeNull();
expect(parseStorageKind("")).toBeNull();
});
});
describe("parseStorageMutationRequest", () => {
it("returns parsed kind and trimmed target id", () => {
expect(
parseStorageMutationRequest("local", {
targetId: " page-1 ",
}),
).toEqual({
kind: "local",
targetId: "page-1",
});
});
it("returns null kind and undefined target id for invalid values", () => {
expect(
parseStorageMutationRequest("invalid", {
targetId: " ",
}),
).toEqual({
kind: null,
targetId: undefined,
});
});
});
});