mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-03 03:03:24 -04:00
test(browser): cover shared and storage route parsing helpers
This commit is contained in:
39
src/browser/routes/agent.shared.test.ts
Normal file
39
src/browser/routes/agent.shared.test.ts
Normal 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();
|
||||
});
|
||||
});
|
||||
});
|
||||
40
src/browser/routes/agent.storage.test.ts
Normal file
40
src/browser/routes/agent.storage.test.ts
Normal 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,
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user