510d7ca4ec
Primo passo della separazione sito / piattaforme decisa da Adriano il 03/09: due applicazioni autosufficienti, senza workspace di root, cosi' che ognuna resti un progetto Astro completo ed estraibile. Qui non cambia niente del codice: solo la radice. I pattern del .gitignore che avevano una barra erano ancorati alla radice e dopo lo spostamento non avrebbero piu' coperto niente (data/*.db*, uploads/*): resi validi a qualunque profondita'. Suite: 45 file, 347 test verdi prima e dopo lo spostamento. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EndnceRA5WnA6rvA5iV9WL
52 lines
1.9 KiB
Bash
Executable File
52 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
npm run build
|
|
PORT=4399 node --env-file=.env ./dist/server/entry.mjs & SRV=$!
|
|
trap 'kill $SRV' EXIT
|
|
sleep 2
|
|
fail=0
|
|
for path in / /about /training /services /services/performance-class /services/rehab /blog /contact /admin/login /robots.txt; do
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' "http://localhost:4399$path")
|
|
echo "$code $path"
|
|
[ "$code" = "200" ] || fail=1
|
|
done
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:4399/admin)
|
|
echo "$code /admin (atteso 302)"
|
|
[ "$code" = "302" ] || fail=1
|
|
|
|
# Contenuti taggati
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:4399/sitemap.xml)
|
|
echo "$code /sitemap.xml"
|
|
[ "$code" = "200" ] || fail=1
|
|
locs=$(curl -s http://localhost:4399/sitemap.xml | grep -c '<loc>')
|
|
echo "$locs <loc> in sitemap (atteso >= 12)"
|
|
[ "$locs" -ge 12 ] || fail=1
|
|
tags=$(curl -s http://localhost:4399/ | grep -c 'data-tag=')
|
|
echo "$tags righe con data-tag= in home (atteso >= 1)"
|
|
[ "$tags" -ge 1 ] || fail=1
|
|
badges=$(curl -s 'http://localhost:4399/?annotate=1' | grep -c 'tag-badge' || true)
|
|
echo "$badges tag-badge da anonimo con ?annotate=1 (atteso 0)"
|
|
[ "$badges" = "0" ] || fail=1
|
|
|
|
# /login pubblico raggiungibile
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:4399/login)
|
|
echo "$code /login"
|
|
[ "$code" = "200" ] || fail=1
|
|
|
|
# Header mostra "Accedi" da anonimo
|
|
curl -s http://localhost:4399/ | grep -q 'Accedi' || { echo "FAIL: link Accedi assente"; fail=1; }
|
|
|
|
# Nessun badge tag-badge da anonimo sulla home semplice
|
|
badges2=$(curl -s http://localhost:4399/ | grep -c 'tag-badge' || true)
|
|
echo "$badges2 tag-badge da anonimo in home semplice (atteso 0)"
|
|
[ "$badges2" = "0" ] || fail=1
|
|
|
|
# Rotta gestione utenti protetta (redirect al login da anonimo)
|
|
code=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:4399/admin/users)
|
|
echo "$code /admin/users (atteso 302)"
|
|
[ "$code" = "302" ] || fail=1
|
|
|
|
echo "smoke ruoli/login/inline OK"
|
|
exit $fail
|