#!/usr/bin/env bash set -euo pipefail # Smoke-Tests nach dem Umschalten auf Proxmox/NPM. # Kann lokal oder auf beliebigem Host mit curl ausgefuehrt werden. BASE_URL="${1:-https://hoerdle.de}" EXPECTED_STATUS="${EXPECTED_STATUS:-200}" require_cmd() { if ! command -v "$1" >/dev/null 2>&1; then echo "Fehlend: $1" exit 1 fi } require_cmd curl require_cmd grep echo "== Hördle Smoke-Test ==" echo "BASE_URL=$BASE_URL" echo check_http() { local name="$1" local url="$2" local code code="$(curl -sS -o /dev/null -w "%{http_code}" "$url" || true)" if [ "$code" = "$EXPECTED_STATUS" ]; then echo "[OK] $name -> $code" else echo "[FAIL] $name -> $code (erwartet: $EXPECTED_STATUS)" return 1 fi } check_body_contains() { local name="$1" local url="$2" local needle="$3" if curl -fsS "$url" | grep -q "$needle"; then echo "[OK] $name enthält '$needle'" else echo "[FAIL] $name enthält '$needle' nicht" return 1 fi } FAILED=0 check_http "Homepage" "$BASE_URL/" || FAILED=1 check_http "Daily API" "$BASE_URL/api/daily" || FAILED=1 # Prüft, ob Daily API als JSON zurückkommt. check_body_contains "Daily API" "$BASE_URL/api/daily" "{" || FAILED=1 echo if [ "$FAILED" -eq 0 ]; then echo "Smoke-Test erfolgreich." else echo "Smoke-Test fehlgeschlagen." exit 1 fi