Files
diegosouzapw--omniroute/tests/unit/cursor-protobuf-wire-split.test.ts
2026-07-13 13:39:12 +08:00

84 lines
3.5 KiB
TypeScript

// Split-guard for the cursorAgentProtobuf wire-primitive extraction (god-file
// decomposition): the low-level protobuf wire codec (varint/tag/length-delimited
// encode+decode + the generic field walker) moved verbatim from cursorAgentProtobuf.ts
// into cursorAgentProtobuf/wire.ts. These primitives were module-private, so the host's
// public API is unchanged; the host imports them back internally. The locks pin the
// leaf's surface, the encode↔decode round-trip invariants, the overrun guard, and that
// the host now imports the wire leaf instead of defining the primitives inline.
import { test } from "node:test";
import assert from "node:assert/strict";
import fs from "node:fs";
import path from "node:path";
import * as wire from "../../open-sse/utils/cursorAgentProtobuf/wire.ts";
test("wire leaf exposes the primitives and wire-type constants", () => {
assert.equal(wire.WT_VARINT, 0);
assert.equal(wire.WT_LEN, 2);
for (const fn of [
"encodeVarint",
"encodeTag",
"encodeBytes",
"encodeString",
"encodeMessage",
"encodeUInt32Field",
"encodeBoolField",
"encodeDoubleField",
"decodeVarint",
"checkedLen",
"decodeFields",
"findField",
"decodeStringField",
"decodeVarintField",
]) {
assert.equal(
typeof (wire as Record<string, unknown>)[fn],
"function",
`${fn} must be exported`
);
}
});
test("varint round-trips across byte-boundaries and bigints", () => {
for (const n of [0, 1, 127, 128, 300, 16384, 2 ** 31]) {
const [decoded, next] = wire.decodeVarint(wire.encodeVarint(n), 0);
assert.equal(decoded, BigInt(n), `varint ${n}`);
assert.equal(next, wire.encodeVarint(n).length);
}
const big = 9007199254740993n; // > Number.MAX_SAFE_INTEGER
assert.equal(wire.decodeVarint(wire.encodeVarint(big), 0)[0], big);
});
test("string / uint32 / bool fields round-trip through decodeFields", () => {
assert.equal(wire.decodeStringField(wire.encodeString(1, "héllo"), 1), "héllo");
assert.equal(wire.decodeStringField(wire.encodeString(3, ""), 3), "");
assert.equal(wire.decodeVarintField(wire.encodeUInt32Field(2, 42), 2), 42);
assert.equal(wire.decodeVarintField(wire.encodeBoolField(4, true), 4), 1);
assert.equal(wire.decodeVarintField(wire.encodeBoolField(4, false), 4), 0);
});
test("decodeFields tags length-delimited vs varint fields and encodeMessage nests", () => {
const nested = wire.encodeMessage(5, [wire.encodeString(1, "x"), wire.encodeUInt32Field(2, 7)]);
const [outer] = wire.decodeFields(nested);
assert.equal(outer.fieldNumber, 5);
assert.equal(outer.wireType, 2);
if (outer.wireType === 2) {
const inner = wire.decodeFields(outer.bytes);
assert.equal(inner.length, 2);
assert.equal(wire.decodeStringField(outer.bytes, 1), "x");
assert.equal(wire.decodeVarintField(outer.bytes, 2), 7);
}
});
test("checkedLen rejects a length that overruns the buffer", () => {
assert.throws(() => wire.checkedLen(5n, 0, Buffer.alloc(3)), /overruns buffer/);
assert.equal(wire.checkedLen(3n, 0, Buffer.alloc(3)), 3);
});
test("host imports the wire leaf and no longer defines the primitives inline", () => {
const host = fs.readFileSync(path.join("open-sse", "utils", "cursorAgentProtobuf.ts"), "utf-8");
assert.match(host, /from "\.\/cursorAgentProtobuf\/wire\.ts"/);
assert.doesNotMatch(host, /^function encodeVarint\(/m, "encodeVarint must live in the wire leaf");
assert.doesNotMatch(host, /^function decodeFields\(/m, "decodeFields must live in the wire leaf");
});