#!/usr/bin/env bash
# Run all project tests. Exit code 0 = all passed.
# Usage: bash run_tests.sh [--no-gameplay]
set -euo pipefail

GODOT="${GODOT:-godot}"
SKIP_GAMEPLAY=0
for arg in "$@"; do [[ "$arg" == "--no-gameplay" ]] && SKIP_GAMEPLAY=1; done

echo "=== gdlint ==="
gdlint *.gd tests/*.gd

echo ""
echo "=== Logic tests ==="
"$GODOT" --headless --script tests/logic_test.gd

echo ""
echo "=== Console focus tests ==="
"$GODOT" --headless --script tests/console_focus_test.gd

echo ""
echo "=== Performance tests (frame-budget regression guard) ==="
"$GODOT" --headless --script tests/performance_test.gd

if [[ "$SKIP_GAMEPLAY" -eq 0 ]]; then
    echo ""
    echo "=== Gameplay tests (headless — assertions only, screenshots may be blank) ==="
    "$GODOT" --headless --script tests/gameplay_test.gd
    echo "Frame strip: tests/output/gameplay/"
fi

echo ""
echo "=== All tests passed ==="
