modulo 16 di 24 / Ore 21-40
Moduli 9-16 / Checkpoint 40 ore
Verificare prestito e chiusura prestito
Come verificare manualmente il ciclo completo prestito/chiusura nel Registro prima della presentazione: scenario step-by-step, dati da controllare, errori da testare.
Verificare prestito e chiusura prestito
Questa lezione appartiene al Modulo 15 — Verificare il comportamento.
Obiettivo della lezione
Verificare manualmente il ciclo completo di apertura e chiusura di un prestito nel Registro, controllando sia il caso felice sia i casi di errore, e documentare il risultato.
Alla fine hai la certezza che il ciclo prestito/chiusura funziona end-to-end — dalla UI all’aggiornamento in localStorage.
Perché serve nel percorso
I test automatici verificano i casi d’uso in isolamento. La verifica manuale verifica l’integrazione: il form HTML è connesso al caso d’uso, il caso d’uso scrive nell’adapter, l’adapter aggiorna localStorage, e la UI mostra il risultato aggiornato.
Nel Registro del laboratorio
Scenario di verifica — ciclo completo:
Prima di iniziare: apri localStorage nel browser (DevTools → Application → Local Storage) su una finestra laterale per vedere i dati in tempo reale.
Passo 1 — Prerequisito: uno strumento disponibile
Verifica che in localStorage esista almeno uno strumento con status: "disponibile". Se non esiste, registrane uno dal form.
Dati attesi in localStorage:
[{ "id": "str-001", "name": "Oscilloscopio", "category": "Misura", "status": "disponibile" }]
Passo 2 — Registra il prestito
Apri la sezione “Prestiti” del Registro. Seleziona lo strumento “str-001” e inserisci un identificativo studente (“stu-042”). Clicca “Presta”.
Verifica nella UI: appare il messaggio “Prestito registrato.”?
Verifica in localStorage:
registro_strumenti: lo strumento “str-001” ha ora"status": "in_prestito".registro_prestiti: è apparso un nuovo oggetto construmentoId: "str-001",apertura: [data],chiusura: null.
Passo 3 — Verifica che lo strumento non possa essere prestato di nuovo
Prova a registrare un secondo prestito per lo stesso strumento. Verifica che appaia il messaggio di errore: “Questo strumento è già in prestito a qualcun altro.” (o equivalente). Verifica che localStorage non abbia un secondo prestito per “str-001”.
Passo 4 — Chiudi il prestito
Trova il prestito aperto nella lista e clicca “Chiudi prestito”. Verifica nella UI: appare il messaggio di conferma?
Verifica in localStorage:
registro_strumenti: lo strumento “str-001” ha ora"status": "disponibile".registro_prestiti: il prestito ha orachiusura: [data](non più null).
Passo 5 — Verifica che il prestito chiuso non possa essere richiuso
Prova a chiudere di nuovo lo stesso prestito. Verifica che appaia il messaggio di errore: “Questo prestito è già stato chiuso in precedenza.” Verifica che chiusura in localStorage non sia cambiata.
Passo 6 — Persistenza
Ricarica la pagina. Verifica che:
- lo strumento sia ancora “disponibile” nella lista;
- il prestito chiuso appaia nella cronologia (se la UI la mostra);
- nessun dato sia andato perso.
Procedura guidata
Esegui i 6 passi nell’ordine. Per ogni passo: scrivi “OK” o “FALLITO” nella scheda. Se un passo fallisce: nota esattamente cosa è andato storto (messaggio di errore, dati mancanti in localStorage, UI non aggiornata).
Attività in classe
Esegui il ciclo completo e compila la scheda di verifica:
## Verifica ciclo prestito/chiusura
Data: __
Browser: __
Passo 1 — Strumento disponibile in localStorage: OK / FALLITO
Dati verificati in localStorage: sì/no
Passo 2 — Registra prestito:
Messaggio UI: OK / FALLITO (testo messaggio: __)
Stato strumento aggiornato in localStorage: OK / FALLITO
Prestito creato in localStorage: OK / FALLITO
Passo 3 — Secondo prestito rifiutato:
Messaggio di errore: OK / FALLITO (testo: __)
localStorage invariato: OK / FALLITO
Passo 4 — Chiudi prestito:
Messaggio UI: OK / FALLITO
Stato strumento tornato a "disponibile": OK / FALLITO
chiusura impostata in localStorage: OK / FALLITO
Passo 5 — Secondo tentativo di chiusura rifiutato:
Messaggio di errore: OK / FALLITO
Passo 6 — Persistenza dopo ricaricamento:
Dati presenti: OK / FALLITO
Problemi trovati:
Azioni correttive:
Spiegazione guidata per studiare
La verifica manuale end-to-end controlla cose che i test unitari non vedono:
- il form HTML ha gli ID corretti e corrisponde a quello atteso dal JS;
- il caso d’uso riceve i parametri giusti (non undefined per via di un campo con ID sbagliato);
- l’adapter di localStorage usa le chiavi corrette;
- la UI mostra il risultato nell’elemento giusto (stesso ID di quello che il JS aggiorna).
Cosa guardare in localStorage durante la verifica:
Apri DevTools → Application → Local Storage → http://localhost:... Vedrai le chiavi registro_strumenti e registro_prestiti. Clicca su ognuna per vedere il JSON completo.
Se dopo il prestito registro_strumenti non è cambiato, il problema è o nel caso d’uso (non chiama archivio.aggiorna) o nell’adapter (non salva). Se il messaggio UI non appare, il problema è nel form handler.
Come isolare il problema:
Messaggio UI non appare → problema nel form handler (mostraMessaggio)
UI aggiornata ma localStorage no → problema nell'adapter (salva o aggiorna)
localStorage aggiornato ma UI vecchia → problema nell'aggiornamento della lista
Tutto funziona ma si perde dopo ricaricamento → problema con la chiave localStorage
Passo per passo nel progetto
- Pulisci localStorage prima della verifica (DevTools → Clear All o
localStorage.clear()in console). - Esegui i 6 passi dello scenario nell’ordine.
- Dopo ogni passo: verifica sia la UI sia localStorage.
- Documenta ogni passo nella scheda.
- Se trovi un problema: tieni aperto il file corrispondente e correggi.
- Riesegui il ciclo completo dopo ogni correzione.
Prova di comprensione
- Perché la verifica manuale è necessaria anche se i test automatici passano?
- Come si distingue un problema nel form handler da un problema nell’adapter guardando localStorage?
- Cosa verifica il passo 5 (secondo tentativo di chiusura) che i test unitari potrebbero non coprire?
- Perché si ricarica la pagina nel passo 6?
Errori da evitare
- saltare la verifica di localStorage durante lo scenario — i test passano ma i dati potrebbero non essere salvati correttamente;
- eseguire la verifica con dati già presenti in localStorage da sessioni precedenti — i dati vecchi possono mascherare problemi;
- fermarsi al passo 2 (caso felice) senza testare i casi di errore (passi 3 e 5);
- non documentare i problemi trovati — perdi le informazioni per la correzione.
Prodotto da consegnare
La scheda di verifica compilata con tutti e 6 i passi, ogni stato (OK/FALLITO), i problemi trovati e le correzioni applicate. Il ciclo completo funziona end-to-end senza errori.
Checklist di chiusura
- tutti e 6 i passi dello scenario sono stati eseguiti
- sia la UI sia localStorage sono stati verificati ad ogni passo
- il secondo prestito per lo stesso strumento viene rifiutato correttamente
- il secondo tentativo di chiusura viene rifiutato correttamente
- dopo il ricaricamento i dati sono ancora presenti
- la scheda è compilata con le evidenze concrete
Risultato atteso
Ho eseguito il ciclo completo prestito/chiusura nel Registro.
Tutti e 6 i passi hanno restituito OK.
Ho verificato sia la UI (messaggi corretti) sia localStorage (dati aggiornati).
Il Registro gestisce correttamente: doppio prestito rifiutato, doppia chiusura rifiutata, persistenza.
Il ciclo è pronto per essere mostrato durante la presentazione.