Recette fonctionnelle — GES-PRO
57 scénarios · résultats enregistrés dans ce navigateur (localStorage)
Accueil
Testeur
Date
Environnement
Développement
Recette
Production
Version
Total
57
Conformes
0
Non conformes
0
Non testés
57
0 %
Tous
Non testés
Non conformes
Conformes
Réinitialiser
Générer le rapport
1. Authentification & sécurité de session
T1.1
Connexion réussie
Compte vendeur@gestionstock.ci actif
Ouvrir /login
Saisir l'email et le mot de passe corrects
Cliquer sur Se connecter
Attendu :
Redirection vers /dashboard ; le nom de l'utilisateur est visible dans le bandeau.
✔ Conforme
✘ Non conforme
Non testé
T1.2
Connexion refusée (mot de passe incorrect)
Saisir un email valide et un mot de passe erroné
Valider
Attendu :
Message d'erreur en français ; aucune connexion ; retour sur /login.
✔ Conforme
✘ Non conforme
Non testé
T1.3
Inscription libre désactivée
Naviguer vers /register
Attendu :
Page 404 : aucune inscription libre (comptes créés par un administrateur via Agents & Accès).
✔ Conforme
✘ Non conforme
Non testé
T1.4
Verrouillage automatique par inactivité
SESSION_LOCK_TIMEOUT (60 min par défaut)
Se connecter
Rester inactif au-delà du délai configuré
Attendu :
Redirection automatique vers l'écran Session verrouillée affichant le nom de l'utilisateur.
✔ Conforme
✘ Non conforme
Non testé
T1.5
Déverrouillage par mot de passe
Session verrouillée (T1.4)
Saisir le mot de passe du compte connecté
Cliquer sur Déverrouiller
Attendu :
Retour sur /dashboard avec le message « Bon retour, {prénom} ! ».
✔ Conforme
✘ Non conforme
Non testé
T1.6
Déconnexion depuis l'écran de verrouillage
Sur l'écran de verrouillage, cliquer sur Se déconnecter
Attendu :
Retour sur /login ; session totalement terminée.
✔ Conforme
✘ Non conforme
Non testé
T1.7
Accès sans authentification refusé
Sans être connecté, ouvrir /dashboard, /ventes, /produits
Attendu :
Redirection systématique vers /login.
✔ Conforme
✘ Non conforme
Non testé
2. Tableau de bord
T2.1
Indicateurs clés affichés
Connecté (admin)
Ouvrir /dashboard
Attendu :
Cartes KPI visibles ; graphique « Ventes des 30 derniers jours » avec dates espacées d'environ 2 jours.
✔ Conforme
✘ Non conforme
Non testé
T2.2
Bouton « Nouvelle vente » dans le ruban
Repérer le bouton Nouvelle vente en bout de ruban
Cliquer dessus
Attendu :
Redirection vers /ventes/create. Bouton absent pour un compte sans VENTE_GERER (ex. consult).
✔ Conforme
✘ Non conforme
Non testé
T2.3
Alerte visuelle sur articles sous seuil
Au moins un article avec stock ≤ seuil
Observer la carte Articles sous seuil
Attendu :
Badge « alerte » visible ; le lien mène vers /stock?alerte=1 filtré.
✔ Conforme
✘ Non conforme
Non testé
3. Catalogue — Articles
T3.1
Création d'un article (code auto-généré)
PRODUIT_GERER (ex. gestionnaire)
/produits/create
Vérifier l'absence de champ Code
Renseigner Libellé, Catégorie, Prix ; laisser TVA et Seuil par défaut
Valider
Attendu :
Article créé, code ART-00001 auto ; TVA = 0 et Seuil = 5 par défaut ; redirection vers la fiche.
✔ Conforme
✘ Non conforme
Non testé
T3.2
Historique des prix
Article existant
Ouvrir la fiche
Modifier le prix et enregistrer
Revenir sur la fiche → section Historique des prix
Attendu :
Deux périodes : ancienne Clôturée (fin = veille), nouvelle Active (fin vide) ; prix courant = ligne active.
✔ Conforme
✘ Non conforme
Non testé
T3.3
Modification du code interdite
Ouvrir /produits/{id}/edit
Attendu :
Code en lecture seule (« Généré automatiquement, non modifiable »).
✔ Conforme
✘ Non conforme
Non testé
T3.4
Suppression bloquée si l'article a été vendu
Article avec ≥ 1 ligne de vente
Ouvrir la fiche
Cliquer Supprimer, confirmer
Attendu :
Refus : « Impossible de supprimer un article ayant déjà fait l'objet d'une vente. » ; article conservé.
✔ Conforme
✘ Non conforme
Non testé
T3.5
Suppression autorisée si inutilisé
Article sans vente ni mouvement
Depuis la fiche, Supprimer, confirmer
Attendu :
Article supprimé ; redirection vers /produits avec message de succès.
✔ Conforme
✘ Non conforme
Non testé
T3.6
Bouton Supprimer absent de la liste
Ouvrir /produits
Attendu :
Aucun bouton Supprimer dans le tableau (uniquement Voir / Modifier).
✔ Conforme
✘ Non conforme
Non testé
T3.7
Prix de vente en vente — droit restreint
gestionnaire (avec VENTE_MODIFIER_PRIX) et vendeur (sans)
vendeur : /ventes/create, choisir un article → champ Prix grisé
gestionnaire : champ Prix modifiable
Attendu :
Comportement conforme à la permission ; forçage côté vendeur ignoré côté serveur.
✔ Conforme
✘ Non conforme
Non testé
4. Catalogue — Catégories
T4.1
Création et liste
/categories/create, saisir code + libellé, valider
Attendu :
Catégorie créée, visible dans /categories avec 0 article rattaché.
✔ Conforme
✘ Non conforme
Non testé
T4.2
Suppression bloquée si des articles sont rattachés
Catégorie utilisée par ≥ 1 article
Ouvrir /categories/{id}/edit
Cliquer Supprimer
Attendu :
Bouton désactivé (info-bulle : nombre d'articles rattachés).
✔ Conforme
✘ Non conforme
Non testé
T4.3
Suppression autorisée si vide
Catégorie sans article
/categories/{id}/edit, Supprimer, confirmer
Attendu :
Catégorie supprimée.
✔ Conforme
✘ Non conforme
Non testé
5. Partenaires — Fournisseurs & Clients
T5.1
Création d'un fournisseur
/fournisseurs/create, renseigner, valider
Attendu :
Fournisseur créé, visible dans /fournisseurs, fiche via Voir.
✔ Conforme
✘ Non conforme
Non testé
T5.2
Création d'un client
/clients/create, renseigner, valider
Attendu :
Client créé, sélectionnable dans le formulaire de vente.
✔ Conforme
✘ Non conforme
Non testé
T5.3
Suppression déplacée sur la fiche
Vérifier l'absence de Supprimer dans /fournisseurs (ou /clients)
Vérifier la présence de Supprimer sur la fiche
Attendu :
Suppression uniquement depuis la fiche détail (permission GERER requise).
✔ Conforme
✘ Non conforme
Non testé
6. Approvisionnement — Arrivages
T6.1
Création d'un arrivage en brouillon
ARRIVAGE_GERER (ex. appro)
/arrivages/create
Vérifier en-tête : date + opérateur
Renseigner Date, Fournisseur, une ligne (article, qté, coût)
Touche Entrée dans Quantité → nouvelle ligne + focus article
Enregistrer
Attendu :
Arrivage Brouillon, stock non impacté, numéro ARR-AAAA-00001.
✔ Conforme
✘ Non conforme
Non testé
T6.2
Création rapide d'un article depuis le modal
PRODUIT_GERER et ARRIVAGE_GERER
Cliquer Nouvel article
Renseigner libellé, catégorie, prix, valider
Attendu :
Modal fermé ; article ajouté en ligne pré-remplie, focus Quantité. Bouton absent sans PRODUIT_GERER.
✔ Conforme
✘ Non conforme
Non testé
T6.3
Lignes sans article ignorées
Saisir qté + coût sans article
Ajouter une ligne complète
Enregistrer
Attendu :
Seule la ligne avec article est conservée ; pas d'erreur de validation.
✔ Conforme
✘ Non conforme
Non testé
T6.4
Validation d'un arrivage et impact sur le stock
Arrivage brouillon, ARRIVAGE_VALIDER
Ouvrir la fiche
Relever la quantité en stock
Cliquer Valider (mettre en stock), confirmer
Attendu :
Statut Validé ; stock augmenté ; PMP recalculé ; bon d'arrivage PDF téléchargé ; mouvement d'entrée journalisé.
✔ Conforme
✘ Non conforme
Non testé
T6.5
Suppression impossible après validation
Arrivage validé
Ouvrir sa fiche
Attendu :
Aucun bouton Supprimer.
✔ Conforme
✘ Non conforme
Non testé
T6.6
Suppression autorisée en brouillon
Arrivage brouillon
Depuis la fiche, Supprimer, confirmer
Attendu :
Arrivage supprimé, retour /arrivages.
✔ Conforme
✘ Non conforme
Non testé
7. Ventes
T7.1
Filtre par défaut sur les ventes du jour
Ouvrir /ventes sans filtre
Attendu :
Seules les ventes du jour. Avec un filtre, résultats sur toutes les dates.
✔ Conforme
✘ Non conforme
Non testé
T7.2
Filtre par période (sélecteur de plage)
Ouvrir le champ Période de la vente
Sélectionner une plage passée
Rechercher
Attendu :
Uniquement les ventes de la plage.
✔ Conforme
✘ Non conforme
Non testé
T7.3
Création d'une vente au comptoir, saisie clavier
VENTE_GERER, stock disponible
/ventes/create ; vérifier en-tête et Client en 1er
Choisir article → focus Quantité pré-sélectionnée
Entrée dans Qté/Coût/TVA → nouvelle ligne, focus article suivant
Renseigner une ligne complète
Attendu :
Total TTC calculé ; saisie 100 % clavier possible.
✔ Conforme
✘ Non conforme
Non testé
T7.4
Blocage si stock insuffisant
Article à stock limité
Saisir une quantité > stock disponible
Attendu :
Alerte de dépassement ; bouton Encaisser et valider désactivé.
✔ Conforme
✘ Non conforme
Non testé
T7.5
Refus d'encaissement si total nul ou négatif
Vente sans ligne valide (total 0)
Cliquer Encaisser et valider
Attendu :
SweetAlert « Total invalide » ; modal de paiement non ouvert.
✔ Conforme
✘ Non conforme
Non testé
T7.6
Modal d'encaissement : montant remis obligatoire
Vente total > 0
Cliquer Encaisser et valider (montant remis à 0)
Tenter de valider sans montant
Attendu :
Refus tant que montant < total ; pas de fermeture par clic extérieur / Échap (seuls Annuler, croix, Confirmer).
✔ Conforme
✘ Non conforme
Non testé
T7.7
Encaissement réussi et téléchargement du reçu
Saisir montant ≥ total, choisir un moyen de paiement
Confirmer et valider (ou Entrée)
Attendu :
Vente Validée, stock déduit, marge calculée, reçu PDF téléchargé, monnaie correcte.
✔ Conforme
✘ Non conforme
Non testé
T7.8
Lignes sans article ignorées à la validation
Ligne sans article + une ligne complète
Valider
Attendu :
Seule la ligne avec article enregistrée ; total sans la ligne incomplète.
✔ Conforme
✘ Non conforme
Non testé
T7.9
Suppression impossible après validation
Vente validée
Ouvrir la fiche / la liste
Attendu :
Aucun bouton Supprimer (fiche ni liste).
✔ Conforme
✘ Non conforme
Non testé
T7.10
Bouton « Nouvelle vente » depuis une fiche
Sur la fiche d'une vente, repérer le bouton
Attendu :
Bouton présent, redirige vers /ventes/create.
✔ Conforme
✘ Non conforme
Non testé
8. Stock
T8.1
Consultation de l'état des stocks
Ouvrir /stock
Attendu :
Quantités par article / dépôt ; bouton Nouvelle vente présent.
✔ Conforme
✘ Non conforme
Non testé
T8.2
Filtrage des articles sous seuil
Appliquer le filtre alerte (ou lien depuis le dashboard)
Attendu :
Seuls les articles dont la quantité ≤ seuil.
✔ Conforme
✘ Non conforme
Non testé
T8.3
Historique des mouvements
Ouvrir /stock/mouvements
Attendu :
Liste chronologique entrées / sorties / transferts avec origine.
✔ Conforme
✘ Non conforme
Non testé
T8.4
Transfert de stock vers une succursale
STOCK_TRANSFERER, succursale + stock suffisant
/stock/transfert : article, dépôt source, destination, quantité
Valider
Attendu :
Stock principal diminué, succursale augmentée, 2 mouvements journalisés.
✔ Conforme
✘ Non conforme
Non testé
T8.5
Transfert refusé si stock insuffisant
Transfert avec une quantité > stock
Attendu :
Refus avec message ; aucun mouvement créé.
✔ Conforme
✘ Non conforme
Non testé
T8.6
Notification de seuil d'alerte
Article proche du seuil
Vente faisant passer la quantité ≤ seuil
Attendu :
Notification de réapprovisionnement émise (centre de notifications).
✔ Conforme
✘ Non conforme
Non testé
9. Administration & sécurité (RBAC)
T9.1
Gestion des agents et comptes utilisateurs
SECURITE_GERER_UTILISATEUR
/agents, créer un agent
Depuis sa fiche, créer un compte (email + mot de passe)
Attendu :
Agent et compte créés ; le nouvel utilisateur peut se connecter.
✔ Conforme
✘ Non conforme
Non testé
T9.2
Attribution d'un rôle et permissions
SECURITE_GERER_ROLE
Sécurité → Config Role
Ouvrir un rôle, cocher/décocher une permission, enregistrer
Se connecter avec ce rôle, vérifier l'effet
Attendu :
La permission modifie immédiatement le comportement des comptes du rôle.
✔ Conforme
✘ Non conforme
Non testé
T9.3
Menu Sécurité regroupe Config Role
Connecté admin, observer le menu latéral
Attendu :
Config Role sous la section Sécurité ; plus de section Configuration distincte.
✔ Conforme
✘ Non conforme
Non testé
T9.4
Restriction d'accès par permission
Compte consult (lecture seule)
Se connecter consult
Ouvrir /produits/create, /ventes/create, /agents/create par URL
Attendu :
Accès refusé (redirection / 403) sur les actions de gestion ; consultations accessibles selon *_CONSULTER.
✔ Conforme
✘ Non conforme
Non testé
T9.5
Journal des connexions
AUDIT_CONSULTER
Se déconnecter / reconnecter
Ouvrir Sécurité → Journal des connexions
Attendu :
Événements connexion / déconnexion / verrouillage horodatés.
✔ Conforme
✘ Non conforme
Non testé
T9.6
Audit des données sensibles
Modifier un article / prix ou supprimer une entité
Ouvrir Sécurité → Audit des données
Attendu :
Opération tracée (qui, quoi, quand).
✔ Conforme
✘ Non conforme
Non testé
T9.7
Ordre des sections du menu
Observer l'ordre du menu (admin)
Attendu :
Catalogue puis Ventes en tête, puis Partenaires, Appro & Stock, Administration.
✔ Conforme
✘ Non conforme
Non testé
10. Cas transverses
T10.1
Cohérence des montants (pas de flottants)
Vente avec quantités décimales et prix à centimes
Vérifier total affiché et reçu PDF
Attendu :
Montants exacts au centime, aucun écart flottant.
✔ Conforme
✘ Non conforme
Non testé
T10.2
Portée collectivité
Données mono-collectivité
Vérifier qu'aucune donnée d'une autre collectivité n'apparaît
Attendu :
Cloisonnement respecté.
✔ Conforme
✘ Non conforme
Non testé
T10.3
Protection CSRF
Rejouer un POST sans jeton CSRF valide
Attendu :
Requête rejetée (419).
✔ Conforme
✘ Non conforme
Non testé
T10.4
Message d'expiration de session personnalisé
Session expirée (> SESSION_LIFETIME)
Soumettre un formulaire resté ouvert
Attendu :
Page 419 « Session expirée » claire, boutons Recharger / Se reconnecter.
✔ Conforme
✘ Non conforme
Non testé
T10.5
Responsive / accessibilité basique
Réduire la largeur (mobile / tablette) sur Ventes, Arrivages, Dashboard
Attendu :
Tableaux et formulaires utilisables ; menu escamotable.
✔ Conforme
✘ Non conforme
Non testé
Rapport de recette
Imprimer / PDF
Fermer