#!/usr/bin/env bash # Regression harness for #701: -h/--help must exit 0, bad args must still exit nonzero. # # Covers the 7 wrappers whose usage() previously hard-coded `exit 1`, so every # --help invocation exited nonzero and logged a phantom isError across fleet lanes. # Asserts, per wrapper: # 1. `--help` exits 0 and prints usage. # 2. `-h` exits 0 and prints usage. # 3. A genuine unknown flag still exits nonzero (usage() default path untouched). set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" WRAPPERS=( issue-assign.sh issue-create.sh issue-list.sh milestone-create.sh pr-create.sh pr-list.sh pr-merge.sh ) fail=0 for wrapper in "${WRAPPERS[@]}"; do path="$SCRIPT_DIR/$wrapper" if ! output=$(bash "$path" --help 2>&1); then echo "FAIL: $wrapper --help exited nonzero" >&2 fail=1 elif [[ "$output" != Usage:* ]]; then echo "FAIL: $wrapper --help did not print usage" >&2 fail=1 fi if ! bash "$path" -h >/dev/null 2>&1; then echo "FAIL: $wrapper -h exited nonzero" >&2 fail=1 fi if bash "$path" --this-is-not-a-real-flag >/dev/null 2>&1; then echo "FAIL: $wrapper accepted an unknown flag (should have exited nonzero)" >&2 fail=1 fi done if [[ "$fail" -eq 0 ]]; then echo "help-exit-code regression passed (7/7 wrappers)" fi exit "$fail"