♻️ refactor(tests): consolidate playbook CLI coverage

This commit is contained in:
csh
2026-06-01 14:22:57 +08:00
parent 02ad5e5f4a
commit 5d9673cf6e
11 changed files with 652 additions and 710 deletions
+15 -1
View File
@@ -27,7 +27,7 @@ def run_script(script_path: Path, *args, cwd: Path | None = None):
class SyncTemplatesPlaceholdersTests(unittest.TestCase):
def test_templates_no_longer_expose_main_language_placeholder(self):
def test_project_templates_drop_legacy_language_placeholders(self):
example_text = (ROOT / "playbook.toml.example").read_text(encoding="utf-8")
self.assertNotIn("main_language", example_text)
@@ -62,6 +62,7 @@ class SyncTemplatesPlaceholdersTests(unittest.TestCase):
).read_text(encoding="utf-8")
self.assertIn("## 成功定义", project_brief_template)
def test_memory_bank_templates_capture_short_lived_context_contracts(self):
progress_template = (
ROOT / "templates" / "memory-bank" / "progress.template.md"
).read_text(encoding="utf-8")
@@ -80,6 +81,7 @@ class SyncTemplatesPlaceholdersTests(unittest.TestCase):
)
self.assertIn("整理/替换旧上下文,不做无限追加", active_context_template)
def test_prompt_templates_point_to_current_superpowers_flow(self):
update_memory_template = (
ROOT / "templates" / "prompts" / "coding" / "update-memory.template.md"
).read_text(encoding="utf-8")
@@ -173,10 +175,13 @@ class SyncTemplatesPlaceholdersTests(unittest.TestCase):
"项目上下文与执行状态写入 `memory-bank/`", agent_behavior_template
)
def test_agent_rules_template_defines_plan_and_archival_contracts(self):
rules_template = (ROOT / "templates" / "AGENT_RULES.template.md").read_text(
encoding="utf-8"
)
self.assertIn("唯一流程约束中心", rules_template)
self.assertIn("{{PLAYBOOK_ROOT}}", rules_template)
self.assertIn("Playbook 模板/供应商目录", rules_template)
self.assertIn("唯一设计与计划产物中心", rules_template)
self.assertIn("memory-bank/progress.md", rules_template)
self.assertIn("已有 `in-progress` 优先恢复", rules_template)
@@ -255,6 +260,14 @@ langs = [\"cpp\", \"tsl\"]
"docs/standards/playbook/scripts/main_loop.py claim",
rules_text,
)
self.assertIn(
"`docs/standards/playbook/` 是 Playbook 模板/供应商目录",
rules_text,
)
self.assertIn(
"默认排除 `docs/standards/playbook/`",
rules_text,
)
self.assertIn("docs/superpowers/plans", rules_text)
self.assertNotIn("plan_progress.py", rules_text)
self.assertIn("记录 `phase=planning` 与 `spec=<path>`", rules_text)
@@ -266,6 +279,7 @@ langs = [\"cpp\", \"tsl\"]
self.assertIn("默认执行使用 `$executing-plans`", rules_text)
self.assertIn("不是默认执行器", rules_text)
self.assertNotIn("{{PLAYBOOK_SCRIPTS}}", rules_text)
self.assertNotIn("{{PLAYBOOK_ROOT}}", rules_text)
self.assertFalse(rules_text.endswith("\n\n"))
def test_sync_standards_rewrites_typescript_docs_prefix_for_snapshot_playbook(self):