feat: 提示词拼装使用动态命令前缀
This commit is contained in:
@@ -149,7 +149,7 @@ describe("assembleBuildPrompt", () => {
|
||||
} catch (e: any) {
|
||||
expect(e.message).toContain("尚未完成规划");
|
||||
expect(e.message).toContain("nonexistent");
|
||||
expect(e.hint).toContain("rune plan");
|
||||
expect(e.hint).toContain("plan nonexistent");
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -163,3 +163,47 @@ describe("assembleArchivePrompt", () => {
|
||||
expect(prompt).toContain("归档");
|
||||
});
|
||||
});
|
||||
|
||||
describe("命令前缀替换", () => {
|
||||
it("assembleDiscussPrompt 替换 rune 为配置前缀", () => {
|
||||
const config: RuneConfig = {
|
||||
stages: { discuss: { prompt: "执行 rune status 查看状态" } },
|
||||
metadata: { command: "bunx @lanyuanxiaoyao/rune" },
|
||||
};
|
||||
const prompt = assembleDiscussPrompt(config);
|
||||
expect(prompt).toContain("bunx @lanyuanxiaoyao/rune status");
|
||||
expect(prompt).not.toContain("执行 rune ");
|
||||
});
|
||||
|
||||
it("assembleDiscussPrompt 无配置时追加降级说明", () => {
|
||||
const config: RuneConfig = {
|
||||
stages: { discuss: { prompt: "执行 rune status 查看" } },
|
||||
};
|
||||
const prompt = assembleDiscussPrompt(config);
|
||||
expect(prompt).toContain("bunx @lanyuanxiaoyao/rune status");
|
||||
expect(prompt).toContain("如果没有安装 bun");
|
||||
});
|
||||
|
||||
it("assembleBuildPrompt 错误提示使用动态前缀", async () => {
|
||||
const config: RuneConfig = {
|
||||
stages: { build: { prompt: "构建阶段" } },
|
||||
metadata: { command: "pnpx @lanyuanxiaoyao/rune" },
|
||||
};
|
||||
try {
|
||||
await assembleBuildPrompt(config, TMP_DIR, "nonexistent-build");
|
||||
expect.unreachable();
|
||||
} catch (e: any) {
|
||||
expect(e.hint).toContain("pnpx @lanyuanxiaoyao/rune plan nonexistent-build");
|
||||
}
|
||||
});
|
||||
|
||||
it("不替换 /rune- 形式", () => {
|
||||
const config: RuneConfig = {
|
||||
stages: { discuss: { prompt: "使用 /rune-plan 进入规划,然后 rune build 构建" } },
|
||||
metadata: { command: "bunx @lanyuanxiaoyao/rune" },
|
||||
};
|
||||
const prompt = assembleDiscussPrompt(config);
|
||||
expect(prompt).toContain("/rune-plan");
|
||||
expect(prompt).toContain("bunx @lanyuanxiaoyao/rune build");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user