git mv all tracked files from the nested padelnomics/ workspace directory to the git repo root. Merged .gitignore files. No code changes — pure path rename. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
84 lines
2.7 KiB
Bash
Executable File
84 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Smoke test: starts the app, hits every route, reports pass/fail.
|
|
# Usage: ./scripts/smoke-test.sh
|
|
set -euo pipefail
|
|
|
|
PORT=5099
|
|
APP_PID=""
|
|
COOKIE_JAR=$(mktemp)
|
|
PASS=0
|
|
FAIL=0
|
|
|
|
cleanup() {
|
|
[[ -n "$APP_PID" ]] && kill "$APP_PID" 2>/dev/null || true
|
|
rm -f "$COOKIE_JAR"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
# --- Start app ---
|
|
echo "Starting app on :$PORT ..."
|
|
PORT=$PORT uv run python -m padelnomics.app &>/dev/null &
|
|
APP_PID=$!
|
|
sleep 2
|
|
|
|
if ! kill -0 "$APP_PID" 2>/dev/null; then
|
|
echo "FAIL: App did not start"
|
|
exit 1
|
|
fi
|
|
|
|
# --- Helpers ---
|
|
check() {
|
|
local label="$1" url="$2" expected="${3:-200}" extra="${4:-}"
|
|
local code
|
|
code=$(curl -s -o /dev/null -w "%{http_code}" $extra "$url")
|
|
if [[ "$code" == "$expected" ]]; then
|
|
printf " OK %s %s\n" "$code" "$label"
|
|
PASS=$((PASS + 1))
|
|
else
|
|
printf " FAIL %s %s (expected %s)\n" "$code" "$label" "$expected"
|
|
FAIL=$((FAIL + 1))
|
|
fi
|
|
}
|
|
|
|
# --- Public routes (no auth) ---
|
|
echo ""
|
|
echo "Public routes:"
|
|
check "Landing page" "http://127.0.0.1:$PORT/"
|
|
check "Features" "http://127.0.0.1:$PORT/features"
|
|
check "About" "http://127.0.0.1:$PORT/about"
|
|
check "Terms" "http://127.0.0.1:$PORT/terms"
|
|
check "Privacy" "http://127.0.0.1:$PORT/privacy"
|
|
check "Sitemap" "http://127.0.0.1:$PORT/sitemap.xml"
|
|
check "Pricing" "http://127.0.0.1:$PORT/billing/pricing"
|
|
check "Login page" "http://127.0.0.1:$PORT/auth/login"
|
|
check "Signup page" "http://127.0.0.1:$PORT/auth/signup"
|
|
check "Health" "http://127.0.0.1:$PORT/health"
|
|
|
|
# --- Auth guards (should redirect when not logged in) ---
|
|
echo ""
|
|
echo "Auth guards (expect 302):"
|
|
check "Planner (no auth)" "http://127.0.0.1:$PORT/planner/" 302
|
|
check "Dashboard (no auth)" "http://127.0.0.1:$PORT/dashboard/" 302
|
|
check "Suppliers (no auth)" "http://127.0.0.1:$PORT/leads/suppliers" 302
|
|
|
|
# --- Dev login ---
|
|
echo ""
|
|
echo "Dev login:"
|
|
curl -s -o /dev/null -c "$COOKIE_JAR" -b "$COOKIE_JAR" -L "http://127.0.0.1:$PORT/auth/dev-login?email=test@test.com"
|
|
echo " OK Logged in as test@test.com"
|
|
|
|
# --- Authenticated routes ---
|
|
echo ""
|
|
echo "Authenticated routes:"
|
|
check "Dashboard" "http://127.0.0.1:$PORT/dashboard/" 200 "-b $COOKIE_JAR"
|
|
check "Settings" "http://127.0.0.1:$PORT/dashboard/settings" 200 "-b $COOKIE_JAR"
|
|
check "Planner" "http://127.0.0.1:$PORT/planner/" 200 "-b $COOKIE_JAR"
|
|
check "Suppliers" "http://127.0.0.1:$PORT/leads/suppliers" 200 "-b $COOKIE_JAR"
|
|
check "Financing" "http://127.0.0.1:$PORT/leads/financing" 200 "-b $COOKIE_JAR"
|
|
|
|
# --- Summary ---
|
|
echo ""
|
|
echo "---"
|
|
printf "Passed: %d Failed: %d\n" "$PASS" "$FAIL"
|
|
[[ $FAIL -eq 0 ]] && echo "All checks passed." || exit 1
|