e067a2f25a
CI / check (pull_request) Failing after 9m51s
Package mapping: - @uncaged/cli-workflow → @united-workforce/cli - @uncaged/workflow-protocol → @united-workforce/protocol - @uncaged/workflow-util → @united-workforce/util - @uncaged/workflow-util-agent → @united-workforce/util-agent - @uncaged/workflow-agent-hermes → @united-workforce/agent-hermes - @uncaged/workflow-agent-claude-code → @united-workforce/agent-claude-code - @uncaged/workflow-agent-builtin → @united-workforce/agent-builtin - @uncaged/workflow-dashboard → @united-workforce/dashboard Changes: - 8 package.json name + dependency refs - 82 files: import statements updated - .changeset/config.json updated - CLAUDE.md updated - bunfig.toml restored for preload CLI command (uwf) and directory names unchanged. Closes shazhou/united-workforce#8
82 lines
2.9 KiB
TypeScript
82 lines
2.9 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import type { RoleDefinition } from "@united-workforce/protocol";
|
|
import { buildRolePrompt } from "../src/build-role-prompt.js";
|
|
|
|
describe("buildRolePrompt", () => {
|
|
test("all fields present", () => {
|
|
const role: RoleDefinition = {
|
|
description: "A coder",
|
|
goal: "You are a senior developer.",
|
|
capabilities: ["cursor-agent", "file-edit"],
|
|
procedure: "Implement the feature.",
|
|
output: "Summarize changes.",
|
|
meta: "placeholder00000" as string,
|
|
};
|
|
const result = buildRolePrompt(role);
|
|
expect(result).toContain("## Goal");
|
|
expect(result).toContain("You are a senior developer.");
|
|
expect(result).toContain("## Capabilities");
|
|
expect(result).toContain("- cursor-agent");
|
|
expect(result).toContain("- file-edit");
|
|
expect(result).toContain("## Prepare");
|
|
expect(result).toContain("uwf CLI Reference");
|
|
expect(result).toContain("cursor-agent, file-edit");
|
|
expect(result).toContain("## Procedure");
|
|
expect(result).toContain("Implement the feature.");
|
|
expect(result).toContain("## Output");
|
|
expect(result).toContain("Summarize changes.");
|
|
});
|
|
|
|
test("empty fields are omitted but Prepare is always present", () => {
|
|
const role: RoleDefinition = {
|
|
description: "A reviewer",
|
|
goal: "You are a code reviewer.",
|
|
capabilities: [],
|
|
procedure: "Review the PR diff carefully.",
|
|
output: "",
|
|
meta: "placeholder00000" as string,
|
|
};
|
|
const result = buildRolePrompt(role);
|
|
expect(result).toContain("## Goal");
|
|
expect(result).toContain("## Prepare");
|
|
expect(result).toContain("uwf CLI Reference");
|
|
expect(result).toContain("## Procedure");
|
|
expect(result).not.toContain("## Capabilities");
|
|
expect(result).not.toContain("## Output");
|
|
});
|
|
|
|
test("all empty still includes Prepare section", () => {
|
|
const role: RoleDefinition = {
|
|
description: "Minimal",
|
|
goal: "",
|
|
capabilities: [],
|
|
procedure: "",
|
|
output: "",
|
|
meta: "placeholder00000" as string,
|
|
};
|
|
const result = buildRolePrompt(role);
|
|
expect(result).toContain("## Prepare");
|
|
expect(result).toContain("uwf CLI Reference");
|
|
expect(result).not.toContain("## Goal");
|
|
expect(result).not.toContain("## Capabilities");
|
|
expect(result).not.toContain("## Procedure");
|
|
expect(result).not.toContain("## Output");
|
|
});
|
|
|
|
test("capabilities rendered as bullet list", () => {
|
|
const role: RoleDefinition = {
|
|
description: "Agent",
|
|
goal: "",
|
|
capabilities: ["search", "code", "browse"],
|
|
procedure: "",
|
|
output: "",
|
|
meta: "placeholder00000" as string,
|
|
};
|
|
const result = buildRolePrompt(role);
|
|
expect(result).toContain("## Capabilities");
|
|
expect(result).toContain("- search");
|
|
expect(result).toContain("- code");
|
|
expect(result).toContain("- browse");
|
|
});
|
|
});
|