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>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
### 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:
|
||||
|
||||
```bash
|
||||
# /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**
|
||||
|
||||
```bash
|
||||
git add scripts/smoke.sh
|
||||
git commit -m "test(smoke): login pubblico, badge, protezione /admin/users"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user