#!/usr/bin/env bash set -euo pipefail REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" LAB_DIR="${REPO_ROOT}/labs/blockchain" FOUNDRY_IMAGE="${FOUNDRY_IMAGE:-ghcr.io/foundry-rs/foundry:latest}" usage() { cat <<'EOF' Usage: ./jeannie blockchain-test [forge args...] Run Foundry tests for labs/blockchain. Extra arguments are passed to forge test. EOF } case "${1:-}" in -h|--help|help) usage exit 0 ;; esac if command -v forge >/dev/null 2>&1; then cd "$LAB_DIR" exec forge test "$@" fi if ! command -v docker >/dev/null 2>&1; then echo "forge or docker is required for blockchain-test." >&2 exit 1 fi exec docker run --rm \ -v "${LAB_DIR}:/workspace" \ -w /workspace \ "$FOUNDRY_IMAGE" \ forge test "$@"