Files
Adriano b913a2bf90 registri dei piani in git (AI-OS#309)
Refs gitea:Adriano/AI-OS#310

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-06 10:36:26 +02:00

2.2 KiB

Task 14: Smoke esteso e verifica end-to-end

Files:

  • Modify: scripts/smoke.sh

Interfaces:

  • Consumes: build di produzione, utenti locali di prova.

  • Step 1: Estendi lo smoke

In scripts/smoke.sh, aggiungi controlli (adeguandoti allo stile e alle variabili già presenti nel file — porta, BASE, helper di asserzione esistenti). Aggiungi:

# /login pubblico raggiungibile
code=$(curl -s -o /dev/null -w '%{http_code}' "$BASE/login")
[ "$code" = "200" ] || { echo "FAIL: /login $code"; exit 1; }

# Header mostra "Accedi" da anonimo
curl -s "$BASE/" | grep -q 'Accedi' || { echo "FAIL: link Accedi assente"; exit 1; }

# Nessun badge/modal da anonimo
if curl -s "$BASE/" | grep -q 'tag-badge'; then echo "FAIL: badge visibile da anonimo"; exit 1; fi

# Rotta gestione utenti protetta (redirect al login da anonimo)
code=$(curl -s -o /dev/null -w '%{http_code}' "$BASE/admin/users")
[ "$code" = "302" ] || { echo "FAIL: /admin/users non protetta ($code)"; exit 1; }

echo "smoke ruoli/login/inline OK"
  • Step 2: Esegui lo smoke sulla build di produzione

Run: fuser -k 4399/tcp 2>/dev/null; npm run build && bash scripts/smoke.sh Expected: exit 0, riga finale smoke ruoli/login/inline OK. (Ricorda: fuser -k 4399/tcp prima, per evitare il falso positivo del server stantio.)

  • Step 3: Verifica funzionale locale completa

Crea tre utenti: npm run create-user -- u1 prova1234 user, npm run create-user -- s1 prova1234 superuser (l'admin esiste già). Con dev server, verifica in browser:

  • user: vede solo i propri articoli, non /admin/content (redirect), non /admin/users; crea un articolo → compare firmato.

  • superuser: vede tutti gli articoli con colonna Autore, apre /admin/content, attiva "Mostra tag" e modifica un tag inline; non vede /admin/users.

  • admin: apre /admin/users, crea un utente, reset password (mostra la password una volta), cambia ruolo, prova a eliminare se stesso (bloccato) e prova a declassare l'unico admin (bloccato). Documenta gli esiti nel report del task.

  • Step 4: Commit

git add scripts/smoke.sh
git commit -m "test(smoke): login pubblico, badge, protezione /admin/users"