Files
oh-my-pi/packages/coding-agent/test/discovery/agent-fields.test.ts
T
can1357 5b60309ebc feat(coding-agent/discovery): added support for legacy thinking field in agent frontmatter
- 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.
2026-03-05 00:37:02 +01:00

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");
});
});