- Added fallback to parse the legacy 'thinking' field when 'thinkingLevel' is not provided. The 'thinkingLevel' field takes precedence when both are present. Added tests to verify backward compatibility and field precedence.
59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { parseAgentFields } from "../../src/discovery/helpers";
|
|
|
|
describe("parseAgentFields", () => {
|
|
test("parses blocking from boolean frontmatter", () => {
|
|
const fields = parseAgentFields({
|
|
name: "reviewer",
|
|
description: "desc",
|
|
blocking: true,
|
|
});
|
|
|
|
expect(fields).toBeDefined();
|
|
expect(fields?.blocking).toBe(true);
|
|
});
|
|
|
|
test("parses blocking from string frontmatter", () => {
|
|
const fields = parseAgentFields({
|
|
name: "reviewer",
|
|
description: "desc",
|
|
blocking: "false",
|
|
});
|
|
|
|
expect(fields).toBeDefined();
|
|
expect(fields?.blocking).toBe(false);
|
|
});
|
|
|
|
test("ignores invalid blocking values", () => {
|
|
const fields = parseAgentFields({
|
|
name: "reviewer",
|
|
description: "desc",
|
|
blocking: "sometimes",
|
|
});
|
|
|
|
expect(fields).toBeDefined();
|
|
expect(fields?.blocking).toBeUndefined();
|
|
});
|
|
test("parses legacy thinking key", () => {
|
|
const fields = parseAgentFields({
|
|
name: "reviewer",
|
|
description: "desc",
|
|
thinking: "medium",
|
|
});
|
|
|
|
expect(fields).toBeDefined();
|
|
expect(fields?.thinkingLevel).toBe("medium");
|
|
});
|
|
|
|
test("prefers thinking-level over legacy thinking", () => {
|
|
const fields = parseAgentFields({
|
|
name: "reviewer",
|
|
description: "desc",
|
|
thinking: "minimal",
|
|
thinkingLevel: "high",
|
|
});
|
|
|
|
expect(fields?.thinkingLevel).toBe("high");
|
|
});
|
|
});
|