test(agents-tools): cover version-bump prepmsg suffix
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# Explicitly exclude agents-tools scripts from Git LFS auto-tracking.
|
||||
# These are small shell scripts that must be stored as regular git objects.
|
||||
scripts/agents-tools/** !filter !diff !merge text eol=lf
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
# agents-tools-version: 1
|
||||
exec "$(git rev-parse --show-toplevel)/.agents-tools/version-bump" precommit
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
# agents-tools-version: 1
|
||||
exec "$(git rev-parse --show-toplevel)/.agents-tools/version-bump" prepmsg "$1"
|
||||
@@ -38,3 +38,49 @@ git add -A; "$SCRIPT" precommit; git commit -q -m content2
|
||||
|
||||
cd /; rm -rf "$r"
|
||||
echo "precommit OK"
|
||||
|
||||
# ── prepmsg: subject suffix + idempotency ────────────────────────────────────
|
||||
r="$(new_repo)"; cd "$r"
|
||||
echo 1.2.3 > .version
|
||||
msg="$(mktemp)"
|
||||
printf 'chore: do thing\n' > "$msg"
|
||||
"$SCRIPT" prepmsg "$msg"
|
||||
head -n1 "$msg" | grep -qF 'chore: do thing (v1.2.3)' || fail "prepmsg: subject not suffixed"
|
||||
"$SCRIPT" prepmsg "$msg"
|
||||
[ "$(grep -c '(v1.2.3)' "$msg")" -eq 1 ] || fail "prepmsg: not idempotent"
|
||||
|
||||
# body preserved
|
||||
printf 'subject\n\nbody line\n' > "$msg"
|
||||
echo 2.0.0 > .version
|
||||
"$SCRIPT" prepmsg "$msg"
|
||||
head -n1 "$msg" | grep -qF 'subject (v2.0.0)' || fail "prepmsg: body-case subject"
|
||||
grep -qF 'body line' "$msg" || fail "prepmsg: body lost"
|
||||
|
||||
rm -f "$msg"; cd /; rm -rf "$r"
|
||||
echo "prepmsg OK"
|
||||
|
||||
# ── end-to-end via real hooks + core.hooksPath ───────────────────────────────
|
||||
r="$(new_repo)"; cd "$r"
|
||||
mkdir -p .agents-tools/hooks
|
||||
cp "$HERE/version-bump" .agents-tools/version-bump
|
||||
cp "$HERE/hooks/pre-commit" .agents-tools/hooks/pre-commit
|
||||
cp "$HERE/hooks/prepare-commit-msg" .agents-tools/hooks/prepare-commit-msg
|
||||
chmod +x .agents-tools/version-bump .agents-tools/hooks/pre-commit .agents-tools/hooks/prepare-commit-msg
|
||||
git config core.hooksPath .agents-tools/hooks
|
||||
echo 1.0.0 > .version
|
||||
mkdir -p plans; : > plans/.gitkeep
|
||||
git add -A; git commit -q -m "init"
|
||||
[ "$(cat .version)" = 1.0.0 ] || fail "e2e baseline: want 1.0.0 got $(cat .version)"
|
||||
git log -1 --pretty=%s | grep -qF 'init (v1.0.0)' || fail "e2e baseline message: $(git log -1 --pretty=%s)"
|
||||
|
||||
mkdir -p specs; : > specs/.gitkeep
|
||||
git add -A; git commit -q -m "add specs"
|
||||
[ "$(cat .version)" = 1.1.0 ] || fail "e2e structure: want 1.1.0 got $(cat .version)"
|
||||
git log -1 --pretty=%s | grep -qF 'add specs (v1.1.0)' || fail "e2e structure message: $(git log -1 --pretty=%s)"
|
||||
|
||||
echo z > specs/z.md
|
||||
git add -A; git commit -q -m "edit spec"
|
||||
[ "$(cat .version)" = 1.1.1 ] || fail "e2e content: want 1.1.1 got $(cat .version)"
|
||||
|
||||
cd /; rm -rf "$r"
|
||||
echo "e2e OK"
|
||||
|
||||
Reference in New Issue
Block a user