Files
openclaw/src/node-host/invoke-payload.test.ts
T
2026-08-07 18:40:17 -05:00

34 lines
1.0 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { coerceNodeInvokeInputPayload } from "./invoke-payload.js";
describe("coerceNodeInvokeInputPayload", () => {
it("accepts a bounded well-formed input payload", () => {
expect(
coerceNodeInvokeInputPayload({
id: "invoke-1",
nodeId: "node-1",
seq: 0,
payloadJSON: JSON.stringify({ kind: "data", data: "keys" }),
}),
).toEqual({
invokeId: "invoke-1",
nodeId: "node-1",
seq: 0,
payloadJSON: JSON.stringify({ kind: "data", data: "keys" }),
});
});
it.each([
[
"oversized payloadJSON",
{ id: "i", nodeId: "n", seq: 0, payloadJSON: "x".repeat(16 * 1024 + 1) },
],
["negative seq", { id: "i", nodeId: "n", seq: -1, payloadJSON: "{}" }],
["fractional seq", { id: "i", nodeId: "n", seq: 0.5, payloadJSON: "{}" }],
["array frame", []],
["string frame", "input"],
])("rejects %s", (_name, payload) => {
expect(coerceNodeInvokeInputPayload(payload)).toBeNull();
});
});