#!/usr/bin/env bash # Run all bats test files in the repo. # Usage: bash tests/run-bats.sh set -euo pipefail REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BATS="$REPO_ROOT/tests/bats/bin/bats" if [[ ! -x "$BATS" ]]; then echo "bats not found at $BATS — initializing submodules..." >&2 git -C "$REPO_ROOT" submodule update --init --recursive fi if [[ ! -x "$BATS" ]]; then echo "Error: bats still not found at $BATS after submodule init" >&2 exit 1 fi mapfile -t TEST_FILES < <( find "$REPO_ROOT" -name "*.bats" \ -not -path "*/tests/bats/*" \ -not -path "*/test_helper/*" \ -not -path "*/.claude/worktrees/*" \ | sort ) if [[ ${#TEST_FILES[@]} -eq 0 ]]; then echo "No .bats test files found." >&2 exit 0 fi "$BATS" "${TEST_FILES[@]}"