35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
|
|
import { buildNodeInvokeResultParams } from "./runner.js";
|
|
|
|
describe("buildNodeInvokeResultParams", () => {
|
|
test("omits optional fields when null/undefined", () => {
|
|
const params = buildNodeInvokeResultParams(
|
|
{ id: "invoke-1", nodeId: "node-1", command: "system.run" },
|
|
{ ok: true, payloadJSON: null, error: null },
|
|
);
|
|
|
|
expect(params).toEqual({ id: "invoke-1", nodeId: "node-1", ok: true });
|
|
expect("payloadJSON" in params).toBe(false);
|
|
expect("error" in params).toBe(false);
|
|
});
|
|
|
|
test("includes payloadJSON when provided", () => {
|
|
const params = buildNodeInvokeResultParams(
|
|
{ id: "invoke-2", nodeId: "node-2", command: "system.run" },
|
|
{ ok: true, payloadJSON: '{"ok":true}' },
|
|
);
|
|
|
|
expect(params.payloadJSON).toBe('{"ok":true}');
|
|
});
|
|
|
|
test("includes payload when provided", () => {
|
|
const params = buildNodeInvokeResultParams(
|
|
{ id: "invoke-3", nodeId: "node-3", command: "system.run" },
|
|
{ ok: false, payload: { reason: "bad" } },
|
|
);
|
|
|
|
expect(params.payload).toEqual({ reason: "bad" });
|
|
});
|
|
});
|