aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-15 17:24:05 -0500
committerCraig Jennings <c@cjennings.net>2026-05-15 17:24:05 -0500
commit2eab96fb92a1a83f902911e1ed21d09f1cc80f88 (patch)
tree20e955b9097783bc962ac55ca88cfda5b157f3d0
parentd364cf2a8520f733d9438fa1e32cb3010c655ee2 (diff)
downloadrulesets-2eab96fb92a1a83f902911e1ed21d09f1cc80f88.tar.gz
rulesets-2eab96fb92a1a83f902911e1ed21d09f1cc80f88.zip
docs(todo): close fold-epic test plan, file edge-case follow-up
Audit and install-ai both pass their core test paths (report-only, --apply convergence, idempotency, fresh install, refusal-on-existing, GITIGNORE mode, doctor 36/0/0, pytest 296+1 skipped). Three destructive edge cases (--force on dirty, missing .ai/ FAIL, install-ai fzf-pick form) were deferred to a [#C] sibling task that proposes a self-contained test harness rather than running them against real projects.
-rw-r--r--todo.org17
1 files changed, 16 insertions, 1 deletions
diff --git a/todo.org b/todo.org
index 42d8e39..1ca5b2f 100644
--- a/todo.org
+++ b/todo.org
@@ -1890,7 +1890,8 @@ make install-ai # no args → fzf-pick from
# without an existing .ai/
#+end_example
-*** TODO [#A] Test plan for audit + install-ai before propagating to ratio
+*** DONE [#A] Test plan for audit + install-ai before propagating to ratio
+CLOSED: [2026-05-15 Fri]
Test against the current state of this machine before pushing changes to ratio.
@@ -1939,6 +1940,20 @@ After local fold + audit + install-ai are working, propagate to ratio.
The =[#A] DOING= memory-sync investigation (todo.org:10) is adjacent. Both involve "make my Claude setup portable across machines." Coordinate so the memory-sync stow approach (if approved) doesn't conflict with this fold's symlink mechanics.
+** TODO [#C] Test harness for =make audit= + =make install-ai= edge cases :test:
+
+Three edge cases from the fold-epic test plan were not exercised because they're destructive on real projects:
+
+- =audit --force= clobbers uncommitted =.ai/= work — needs a project with intentionally dirty =.ai/= to verify the override path.
+- =audit= reports =FAIL= when =.ai/= is missing — needs a project where the directory was deleted to verify the loop continues past the failure.
+- =install-ai= fzf-pick form (no =PROJECT= arg) — needs interactive testing.
+
+Build a self-contained test harness under =.ai/scripts/tests/= that spins up =/tmp/audit-test-projects/= with a known matrix of project states (clean, dirty, missing =.ai/=, pristine, etc.), runs the audit + install-ai targets against it, and asserts expected outputs. The harness should clean up after itself.
+
+Pattern reference: bats or shell-based assertions (similar to the elisp ERT suites for =todo-cleanup= and =lint-org=, but for shell scripts).
+
+Triggered by: 2026-05-15 fold-epic, child 4 test plan; commits =94782ee= (audit) + =d364cf2= (install-ai).
+
** TODO [#C] Consolidate =claude-templates/Makefile= after fold :chore:
Sibling follow-up from the fold child (2026-05-15). After the subtree merge, =rulesets/claude-templates/Makefile= still has its standalone =install= / =uninstall= / =list= / =test-scripts= targets. The =install= target's =bin/ai= logic is now duplicated in =rulesets/Makefile=. Both work; the redundancy is harmless but worth cleaning up.