refactor: flatten padelnomics/padelnomics/ → repo root
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>
This commit is contained in:
83
web/scripts/smoke-test.sh
Executable file
83
web/scripts/smoke-test.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user