#!/bin/bash
#
# run_all_tests.sh — simple runner for test_api.sh
#

API_SCRIPT="./test_api.sh"

# Make sure test_api.sh is executable
if [ ! -x "$API_SCRIPT" ]; then
  echo "Error: $API_SCRIPT not found or not executable"
  exit 1
fi

# List of tests to run (must match functions in test_api.sh)
TESTS=(
  root_redirect
  update_container
  start_container
  stop_container
  nuke_container
  info_all
  info_one
  bump_container
  container_quota
  system_containers
  system_images
  system_info
  system_pull
)

ok_count=0
fail_count=0

echo "Running API tests..."
echo "===================="

for test in "${TESTS[@]}"; do
  # Run test, capture HTTP status code only
  status=$($API_SCRIPT $test -s -o /dev/null -w "%{http_code}")

  if [[ "$status" == "200" || "$status" == "302" ]]; then
    echo "[OK ] $test"
    ((ok_count++))
  else
    echo "[NOK] $test (HTTP $status)"
    ((fail_count++))
  fi
done

echo "===================="
echo "Summary: $ok_count OK, $fail_count NOK"
exit $fail_count

