TEST CHECKLIST — PRESALES

WMS Agile — Onboarding Test

Verifica step-by-step di un nuovo tenant da zero

5 step ~30 min Multi-tenant Stato salvato
Base URL API
https://wms.agile.software
Header autenticazione
X-API-Key: wms-demo-api-key-2026-secure
Admin esistente (tenant 1)
admin@logitech-wh.it
Admin2026!
1

Crea nuovo tenant

Provisioning del tenant di test via API — verifica response e ID assegnato

In attesa

Il primo passo crea il container multi-tenant isolato per i dati del cliente di test. Salvare l'ID restituito: servirà negli step successivi.

Comando curl
bash / terminal
curl -s -X POST https://wms.agile.software/api/auth/tenants \
  -H "X-API-Key: wms-demo-api-key-2026-secure" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Test Company",
    "slug": "test-co",
    "plan": "starter"
  }'
Risultato atteso
{ "success": true, "data": { "id": 2, "name": "Test Company", "slug": "test-co", "plan": "starter" } }
Troubleshooting
401 Unauthorized: verificare che l'header X-API-Key sia esatto — nessuno spazio extra, nessun carattere mancante
409 Conflict: lo slug test-co esiste già — cambiare in test-co-2 o simile
500 Server Error: controllare che i container Docker siano attivi (/health su auth-ms)
Verifiche step
  • Risposta 200 con success: true

    La chiamata API ha restituito HTTP 200 e il campo success è true

  • ID tenant salvato

    Annotare l'ID restituito nel campo data.id — servirà allo step 2

2

Crea utente admin per il nuovo tenant

Provisioning dell'utente amministratore collegato al tenant appena creato

In attesa

Creare l'utente con ruolo admin per il nuovo tenant. Sostituire ID_DA_STEP1 con il valore ottenuto al passo precedente.

Comando curl
bash / terminal
curl -s -X POST https://wms.agile.software/api/auth/users \
  -H "X-API-Key: wms-demo-api-key-2026-secure" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@test-co.it",
    "password": "TestAdmin2026!",
    "role": "admin",
    "tenant_id": ID_DA_STEP1
  }'
Risultato atteso
{ "success": true, "data": { "id": 10, "email": "admin@test-co.it", "role": "admin", "tenant_id": 2 } }
Troubleshooting
400 Bad Request: tenant_id mancante o non numerico — verificare di aver sostituito il placeholder ID_DA_STEP1
409 Conflict: email già in uso — aggiungere suffisso es. admin2@test-co.it
422 Unprocessable: password non soddisfa i requisiti — deve contenere maiuscola, numero e carattere speciale
Verifiche step
  • Utente creato con successo

    success: true e data.email = "admin@test-co.it"

  • tenant_id correttamente assegnato

    Il campo data.tenant_id corrisponde all'ID ottenuto allo step 1

3

Login come nuovo admin — verifica onboarding overlay

Test dell'isolamento multi-tenant e del wizard onboarding a 5 step

In attesa

Aprire una finestra browser in modalità incognita per evitare contaminazione con la sessione admin esistente. Verificare che il nuovo tenant veda solo i propri dati — isolamento multi-tenant fondamentale.

Procedura manuale browser
browser — finestra incognita
1. Aprire Chrome/Edge in modalità incognita (Ctrl+Shift+N)
2. Navigare su: https://wms.agile.software
3. Login con:
   Email:    admin@test-co.it
   Password: TestAdmin2026!
4. Attendere il caricamento della dashboard
Cosa verificare
✓ Appare overlay onboarding a 5 step (modale/wizard) ✓ Dashboard vuota — nessun dato del tenant 1 (Logitech) ✓ Nessuna missione, nessun prodotto, nessuna zona visibile ✓ Nome tenant nell'header = "Test Company" (NON "Logitech WH")
Troubleshooting
Login fallisce: verificare che la password sia corretta e il JWT_SECRET sia allineato tra tutti i microservizi
Onboarding non compare: potrebbe essere già stato completato — controllare lo stato del tenant nel DB o creare un nuovo tenant
Dati tenant 1 visibili: bug critico di isolamento — escalare immediatamente prima di procedere
Verifiche step
  • Overlay onboarding compare all'accesso

    Il wizard a 5 step appare automaticamente dopo il primo login

  • Dati del tenant isolati correttamente

    Dashboard vuota — nessun magazzino, prodotto o missione preesistente

  • Nessun dato del tenant 1 (Logitech) visibile

    Isolamento multi-tenant verificato: zero cross-contamination

4

Completare onboarding 5 step

Configurazione minima del magazzino: warehouse, zona, bin, prodotto, first pick

In attesa

Completare i 5 step del wizard onboarding nell'interfaccia grafica. Seguire esattamente l'ordine indicato — ogni step sblocca il successivo.

Step 1 — Crea magazzino
Nome: "Test Warehouse"  |  Tipo: standard

Inserire i dati nel form del wizard e cliccare "Crea"

Step 2 — Crea zona
Nome: "Zone A"  |  Tipo: storage

Selezionare il tipo "storage" dal dropdown e confermare

Step 3 — Crea bin
Codice: "A-01-01"  |  Capacità: 100

Codice bin nella zona creata, capacità 100 unità

Step 4 — Crea prodotto
SKU: "TEST-001"  |  Nome: "Prodotto Test"  |  Unità: PZ

SKU univoco nel tenant, unità di misura "PZ" (pezzi)

Step 5 — Simula first pick
Completato o saltato (skip disponibile)

Il first pick può essere saltato se il prodotto è nuovo senza stock — verificare che il pulsante "Skip" funzioni

Verifica completamento
  • Tutti e 5 gli step completati (o skipati dove previsto)

    Il wizard mostra la schermata di completamento "Onboarding completato"

  • Dashboard si popola correttamente dopo completamento

    Overlay sparisce e la dashboard mostra il magazzino, zona e bin appena creati

5

Verifica dashboard + isolamento multi-tenant

Test finale: dashboard coerente e verifica cross-tenant isolation

In attesa

Verifica finale che la dashboard del nuovo tenant mostri i dati configurati e che l'isolamento multi-tenant sia garantito (il tenant 1 non vede i dati del tenant 2).

Verifiche dashboard nuovo tenant
browser — sessione tenant 2 (test-co)
Dashboard → deve mostrare:
  ✓ Magazzino: "Test Warehouse"
  ✓ Zone: 1 zona attiva ("Zone A")
  ✓ Bin: almeno 1 bin disponibile ("A-01-01")
  ✓ Prodotti: 1 SKU ("TEST-001")
  ✓ KPI coerenti con lo stato attuale
Verifica isolamento — login come tenant 1
browser — nuova finestra incognita — tenant 1
1. Aprire NUOVA finestra incognita
2. Login: admin@logitech-wh.it / Admin2026!
3. Verificare che NON compaia:
   ✗ Nessun magazzino "Test Warehouse"
   ✗ Nessun SKU "TEST-001"
   ✗ Nessun bin "A-01-01"
4. Logitech deve vedere solo i suoi dati
Troubleshooting
Dashboard vuota dopo onboarding: ricaricare la pagina (F5) — potrebbero esserci dati in cache del browser
KPI a zero nonostante dati creati: attendere 5-10 secondi per il refresh dei contatori async
Tenant 1 vede dati tenant 2: CRITICO — interrompere immediatamente e segnalare. NON procedere con demo cliente.
Verifiche finali
  • Dashboard nuovo tenant si popola correttamente

    Magazzino, zona, bin e prodotto creati durante l'onboarding sono visibili

  • Isolamento tenant verificato — tenant 1 non vede dati tenant 2

    Login come admin@logitech-wh.it: nessun dato del tenant test visibile

  • KPI dashboard coerenti con i dati inseriti

    I contatori mostrano valori corretti (1 magazzino, 1 zona, 1 bin, 1 prodotto)


Cleanup — Rimozione tenant di test

Eseguire solo al termine della verifica, se si vuole rimuovere i dati di test

Attenzione: questo comando elimina permanentemente il tenant e tutti i suoi dati. Eseguirlo solo dopo aver completato e documentato tutti i test. L'operazione non e' reversibile.

Comando di cleanup
bash / terminal
# Solo se si vuole rimuovere il tenant di test
curl -s -X DELETE https://wms.agile.software/api/auth/tenants/ID_TENANT \
  -H "X-API-Key: wms-demo-api-key-2026-secure"

# Risultato atteso:
{"success": true, "data": {"deleted": true}}

Problemi noti e note operative

Le checkbox sono salvate in localStorage del browser — lo stato persiste al reload della pagina fino al click di "Reset"
Pulsante "Reset" in alto a destra: cancella tutto lo stato localStorage e riporta tutte le checkbox a non-completato
Se compaiono errori 401 dopo restart del server, verificare che il JWT_SECRET sia allineato tra tutti i microservizi (auth, inventory, warehouse, inbound, outbound, report)
Il flusso completo richiede circa 30 minuti per un presales esperto, 45-60 minuti per la prima esecuzione
Usare sempre finestre incognite separate per testare più tenant simultaneamente — i cookie di sessione sono per dominio
La pagina è print-friendly (Ctrl+P): tutte le sezioni si espandono in stampa, le curl block sono leggibili in A4