The measured ladder tried every single-line variant before considering a second line, so whenever line one plus the full group did not fit — from around 92 usable columns upwards, depending on how long the branch, cwd and model names are — it emitted rl_bare (5h and 7d only) and silently dropped the per-model (Fable) bar that is the main reason the group is worth rendering. On a 110-column laptop the limit was invisible. Reorder so a second line beats losing that bar: one line rich/mid/lean, then wrap, and rl_bare only when WRAP_NARROW is false. Reset times and extra-usage credits are still given up rather than wrapped for, which makes the rendered content non-monotone in width; the comment on the ladder spells that out. Also stop the tests writing fixtures to the caches the live status line reads. ~/.claude/statusline.sh is a symlink to the script, so a test run was visibly rendering fabricated usage — a Fable bar at 10%, extra-usage credits of $1234.56/$2000.00 — in whatever session happened to be open, and a run killed before its trap fired would have left that in place for an hour. The cache directory is now $STATUSLINE_CACHE_DIR (default /tmp/claude) and each suite points it at a temporary directory, which also removes the backup/restore dance and the deletion of the live git-status cache. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
25 lines
777 B
Shell
Executable file
25 lines
777 B
Shell
Executable file
#!/bin/bash
|
|
# Run every test for claude/statusline.isaacaudet.sh.
|
|
#
|
|
# Usage: claude/tests/run.sh
|
|
#
|
|
# The tests render the status line directly, so they need the same tools it
|
|
# does (bash, jq, git, python3). They point STATUSLINE_CACHE_DIR at a temporary
|
|
# directory and write their fixtures there, so the caches the live status line
|
|
# reads are never touched.
|
|
cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
|
|
|
|
status=0
|
|
for t in statusline.isaacaudet.payload_test.sh \
|
|
statusline.isaacaudet.width_test.sh; do
|
|
echo "== $t"
|
|
bash "$t" || status=1
|
|
echo
|
|
done
|
|
|
|
echo "== statusline.isaacaudet.overflow_test.py"
|
|
python3 statusline.isaacaudet.overflow_test.py || status=1
|
|
|
|
echo
|
|
[ "$status" -eq 0 ] && echo "ALL TESTS PASSED" || echo "SOME TESTS FAILED"
|
|
exit "$status"
|