JS2 SBH — avvio della sessione, login, schede, rientro e uscita 4. Opzioni › Informazioni sulla sessione Dal pulsante delle opzioni (le tre righe in basso a sinistra) › Informazioni sulla sessione : chi e' collegato, a quale server, con quale connessione, versione e catalogo. E' quello che si chiede a chi segnala un problema; Copia lo mette negli appunti in una volta. ✔ Verifica: la finestra mostra «Server (nodo)» e «Connessione n.». ✔ Verifica: «Postazione (client)» e' GUIDA-AVVIO , il nome scritto al §1: il nome client arriva davvero al server. ✔ Verifica: «Utente» e' valorizzato. 5. Piu' sessioni: le schede Ogni scheda della barra in basso e' una sessione completa , con la sua connessione al server: due schede sono due utenti collegati, indipendenti. Il tasto destro su una scheda apre il suo menu. ✔ Verifica: nel menu della scheda «Duplica» e «Chiudi la scheda» sono attivi. Duplica apre una connessione nuova con le stesse credenziali, senza rifare il login: le credenziali restano nella memoria della pagina, mai nel browser (vedi il §8: dopo una ricarica non ci sono piu' e la scheda nuova chiede il login). ✔ Verifica: compare una seconda scheda che entra da sola, senza richiesta di login, arriva al menu («UTENTE · menu») e diventa l'attiva. Affianca alla scheda attiva (dal menu di una scheda che non e' quella attiva) divide lo schermo fra due sessioni: per esempio un'interrogazione a sinistra e un inserimento a destra. Il clic in una delle due la rende attiva (tastiera e finestre vanno a lei). Separa , dallo stesso menu, torna a una sola. ✔ Verifica: con «Affianca» due sessioni sono a video insieme, ognuna col suo menu e piu' stretta. ✔ Verifica: con «Separa» ne resta a video una sola. Chiudi la scheda su una scheda connessa esce dalla sua sessione in modo ordinato e lo chiede prima, con una finestra dell'app e non con quella del browser. ✔ Verifica: «Chiudi la scheda» chiede «Chiudere la scheda?»; confermato, la scheda sparisce e resta la prima, col suo menu. Il + accanto alle schede apre una sessione nuova con il suo login (per entrare con un altro utente): la scheda nasce sulla pagina Connetti. Una scheda senza connessione si chiude subito, senza conferma, perche' non c'e' niente sul server da chiudere. ✔ Verifica: il «+» apre la scheda «Nuova sessione» con Connetti, e la prima resta connessa (pallino verde). ✔ Verifica: il menu della scheda nuova dice «Nessuna connessione aperta» e «Chiudi la scheda» la toglie subito. 6. Una funzione aperta Dal menu: modulo B20 , cerca «Condizioni», Condizioni pagamento , tipo di lavoro Interrogazione , Avvia . Con una funzione aperta il client protegge il lavoro: uscire a meta' troncherebbe il programma COBOL (file e transazioni non chiusi), quindi si esce solo dal menu. ✔ Verifica: la griglia ha le righe e il cursore e' sul Codice pagamento. ✔ Verifica: la scheda dice utente e form (non piu' «menu») e la barra mostra form e maschera in input. ✔ Verifica: il pulsante di uscita e' spento. ✔ Verifica: nel menu della scheda «Chiudi la scheda» e' spento, con «Prima chiudi la funzione e torna al menu». 7. Il rientro dopo una ricarica Ricaricare la pagina (F5), chiudere la scheda del browser e riaprire /sbh , o andare avanti e indietro, non perde la sessione: il gateway la tiene parcheggiata per qualche minuto, il browser rigioca quello che il server gli aveva mandato e si riaggancia. La funzione torna com'era, col campo in input. Per questo il browser non chiede piu' «Vuoi davvero uscire?»: non c'e' niente da perdere. ✔ Verifica: ricaricando, il browser non mostra nessun avviso. ✔ Verifica: la griglia torna con la stessa prima riga, il cursore sul Codice pagamento e nessuna attesa in corso. ✔ Verifica: dopo la ricarica c'e' una sola scheda (quella ripresa prende il posto della scheda vuota dell'avvio). 8. Uscire dalla pagina con la sessione aperta Andare altrove nell'applicazione (qui: Tutti i moduli in alto a sinistra › un modulo) con una sessione aperta non la abbandona in silenzio: l'app chiede cosa farne. Resta : si annulla la navigazione. Lascia in sospeso : si esce, le sessioni restano parcheggiate sul gateway e tornando su /sbh entro il tempo detto riprendono da dove erano, come dopo la ricarica del §7. Forza l'uscita (con una funzione aperta) o Chiudi le sessioni ed esci (dal menu): chiude tutte le connessioni. Con una funzione aperta la tronca a meta'. La guida prova Resta : «Lascia in sospeso» terminerebbe il giro con una sessione parcheggiata sul server, che il passo successivo dovrebbe riprendere; il rientro stesso e' gia' provato al §7. ✔ Verifica: compare «Uscire dalle sessioni?» e avverte che c'e' una funzione aperta. ✔ Verifica: i pulsanti sono «Resta», «Lascia in sospeso» e «Forza l'uscita». ✔ Verifica: il testo dice che le sessioni in sospeso riprendono «entro 15 minuti» (il tempo di rientro del gateway, SBH_RESUME_SECONDS , di default 900 secondi). ✔ Verifica: con «Resta» la finestra si chiude, si resta su /sbh e la funzione e' ancora a video. Tornati al menu col tasto Esci della funzione, l'uscita si riaccende. La sessione ripresa dopo la ricarica si puo' duplicare , ma con una differenza: le credenziali che servono a «Duplica» per entrare da sola stavano nella memoria della pagina, e la ricarica le ha cancellate (e' voluto: non si salvano nel browser). Il menu della scheda lo dice nel sottotitolo, «Nuova connessione: dopo una ricarica il login va rifatto». ✔ Verifica: di nuovo al menu, il pulsante di uscita e' attivo e la scheda dice «UTENTE · menu». ✔ Verifica: dopo il rientro «Duplica» e' attivo, con «dopo una ricarica il login va rifatto». La scheda nuova si collega da sola e arriva alla richiesta di login del server. La guida non entra (non conosce le credenziali: stanno in config/.env.sbh ) e chiude la scheda dal suo menu, con la conferma: l'uscita e' ordinata anche dalla richiesta di login (il client risponde Esci al server). ✔ Verifica: la seconda scheda mostra il login e dice «Accesso…», mentre la prima resta connessa. ✔ Verifica: «Chiudi la scheda» con la conferma la toglie e resta la prima, col suo menu. 9. L'uscita ordinata Dal menu, il pulsante di uscita in basso a destra (o Opzioni › Esci dalla sessione ) chiude la sessione in modo ordinato: il client dice al server che se ne va, il server chiude i suoi programmi e libera la connessione. La conferma e' una finestra dell'app. ✔ Verifica: l'uscita chiede «Chiudere la sessione?» con il pulsante «Chiudi la sessione». ✔ Verifica: confermato, la barra dice «Chiuso» e torna la pagina Connetti. ✔ Verifica: accanto a «Chiuso» non ci sono piu' nodo e numero della connessione finita. ✔ Verifica: nel browser non resta nessuna sessione da riprendere (nessuna voce sbh-web.sessione.* nel localStorage). Introduzione Come si apre una sessione del gestionale legacy dal client web, come si entra, come si lavora con piu' sessioni a schede, cosa succede se si ricarica la pagina e come si esce senza lasciare connessioni appese sul server. Percorso: http://localhost:4202/sbh › Connetti › Accedi ; per la funzione di prova B20 › Condizioni pagamento › Interrogazione . Rieseguire: cd frontend && npx playwright test --config=playwright.sbh.config.ts sbh-web-guida-avvio (con altre sessioni al lavoro, aggiungere --output=test-results/sbh-guida-avvio ). 42 verifiche, 18 schermate. Non crea dati: la funzione di prova e' aperta in interrogazione. Perche' uno spec Playwright e non un .cjs in e2e/guide/ . Le altre guide girano con uno script node e2e/guide/-guide.cjs contro l'ERP sulla 4200. Questa parla con un server SIGEA legacy vero, attraverso il gateway SBH, e ha bisogno di utente e password: li carica frontend/playwright.sbh.config.ts da config/.env.sbh (ignorato da git, non si legge e non si copia altrove). Lo script e' quindi frontend/e2e/sbh-web-guida-avvio.spec.ts , che usa quella config, la cache dei menu di e2e/sbh-web-accesso.ts ( SBH_STATO ) e lo stesso schema degli altri spec sbh-web. Ogni ✔ Verifica qui sotto e' un expect dello spec, nello stesso ordine. Prerequisiti: npm run sbh:leggero avviato (app sulla 4202, gateway sulla 5086), la VPN verso il server legacy. Viewport 1500x900. Lo spec chiude sempre la sessione in modo ordinato, anche se un passo fallisce: il server ha un numero massimo di connessioni e una sessione abbandonata resta occupata finche' il gateway non la chiude.