gaza/src/protocol/parser.test.ts
Ubuntu 12ce632de7 合并主分支并解决协议模型冲突
Co-authored-by: multica-agent <github@multica.ai>
2026-08-03 19:10:06 +00:00

24 lines
1017 B
TypeScript

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