gaza/test/parser.test.ts
Ubuntu fbcc342c5f 定义标准协议 TypeScript 数据模型
Co-authored-by: multica-agent <github@multica.ai>
2026-08-03 19:05:26 +00:00

23 lines
1005 B
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { demoSession } from "../src/fixtures/index.js";
import { isProtocolVersion, isSession, parseSession, ProtocolParseError } from "../src/index.js";
test("接受完整 Session 并保留未知枚举和扩展字段", () => {
const futureSession = { ...demoSession, state: "SUSPENDED_BY_POLICY", vendor_status: 42 };
const parsed = parseSession(futureSession);
assert.equal(parsed.state, "SUSPENDED_BY_POLICY");
assert.equal(parsed.vendor_status, 42);
});
test("拒绝缺少 project_id 的跨上下文 Session", () => {
const { project_id: _projectId, ...invalid } = demoSession;
assert.equal(isSession(invalid), false);
assert.throws(() => parseSession(invalid), ProtocolParseError);
});
test("协议版本必须由非负整数构成", () => {
assert.equal(isProtocolVersion({ major: 1, minor: 0, patch: 0, future: true }), true);
assert.equal(isProtocolVersion({ major: 1, minor: -1, patch: 0 }), false);
});