File size: 1,546 Bytes
fc93158 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import { describe, expect, it } from "vitest";
import { parseNodeList, parsePairingList } from "./node-list-parse.js";
describe("shared/node-list-parse", () => {
it("parses node.list payloads", () => {
expect(parseNodeList({ nodes: [{ nodeId: "node-1" }] })).toEqual([{ nodeId: "node-1" }]);
expect(parseNodeList({ nodes: "nope" })).toEqual([]);
expect(parseNodeList(null)).toEqual([]);
expect(parseNodeList(["not-an-object"])).toEqual([]);
});
it("parses node.pair.list payloads", () => {
expect(
parsePairingList({
pending: [{ requestId: "r1", nodeId: "n1", ts: 1 }],
paired: [{ nodeId: "n1" }],
}),
).toEqual({
pending: [{ requestId: "r1", nodeId: "n1", ts: 1 }],
paired: [{ nodeId: "n1" }],
});
expect(parsePairingList({ pending: 1, paired: "x" })).toEqual({ pending: [], paired: [] });
expect(parsePairingList(undefined)).toEqual({ pending: [], paired: [] });
expect(parsePairingList(["not-an-object"])).toEqual({ pending: [], paired: [] });
});
it("preserves valid pairing arrays when the sibling field is malformed", () => {
expect(
parsePairingList({
pending: [{ requestId: "r1", nodeId: "n1", ts: 1 }],
paired: "x",
}),
).toEqual({
pending: [{ requestId: "r1", nodeId: "n1", ts: 1 }],
paired: [],
});
expect(
parsePairingList({
pending: 1,
paired: [{ nodeId: "n1" }],
}),
).toEqual({
pending: [],
paired: [{ nodeId: "n1" }],
});
});
});
|