# language: fr
Fonctionnalité: Gestion de compte utilisateur
  En tant qu'utilisateur connecté
  Je veux gérer les paramètres de mon compte
  Afin de maintenir la sécurité et l'exactitude de mes informations

  Contexte:
    Étant donné que l'API RoadWave est disponible
    Et que je suis connecté avec:
      | email        | user@test.fr |
      | mot_de_passe | Password123  |

  # ==========================================
  # Déconnexion
  # ==========================================

  Scénario: Déconnexion volontaire de l'appareil actuel
    Quand je clique sur "Se déconnecter"
    Alors ma session est invalidée immédiatement
    Et mon refresh token est révoqué
    Et je suis redirigé vers l'écran de connexion
    Et je dois me reconnecter pour accéder à l'application

  Scénario: Déconnexion ne révoque pas les autres appareils
    Étant donné que je suis connecté sur mon iPhone et mon iPad
    Quand je me déconnecte depuis mon iPhone
    Alors la session iPhone est invalidée
    Et ma session iPad reste active
    Et je peux continuer à utiliser l'application sur iPad

  # ==========================================
  # Changement de mot de passe
  # ==========================================

  Scénario: Changement de mot de passe avec ancien mot de passe correct
    Quand je change mon mot de passe depuis les paramètres avec:
      | ancien_mot_de_passe  | Password123 |
      | nouveau_mot_de_passe | NewPass456  |
      | confirmation         | NewPass456  |
    Alors mon mot de passe est modifié avec succès
    Et je reste connecté sur cet appareil
    Et tous les autres appareils sont déconnectés
    Et je reçois un email de confirmation de changement
    Et je vois le message "Mot de passe modifié avec succès"

  Scénario: Changement de mot de passe avec ancien mot de passe incorrect
    Quand je change mon mot de passe avec un ancien mot de passe incorrect "WrongPass123"
    Alors le changement échoue
    Et je vois le message "Ancien mot de passe incorrect"
    Et mon mot de passe actuel reste inchangé

  Scénario: Changement de mot de passe avec nouveau mot de passe invalide
    Quand je change mon mot de passe avec un nouveau mot de passe "faible"
    Alors le changement échoue
    Et je vois le message "Le mot de passe doit contenir au moins 8 caractères, 1 majuscule et 1 chiffre"

  Scénario: Changement de mot de passe avec confirmation non correspondante
    Quand je change mon mot de passe avec:
      | ancien_mot_de_passe  | Password123 |
      | nouveau_mot_de_passe | NewPass456  |
      | confirmation         | DiffPass789 |
    Alors le changement échoue
    Et je vois le message "Les mots de passe ne correspondent pas"

  Scénario: Nouveau mot de passe identique à l'ancien
    Quand je change mon mot de passe avec:
      | ancien_mot_de_passe  | Password123 |
      | nouveau_mot_de_passe | Password123 |
      | confirmation         | Password123 |
    Alors le changement échoue
    Et je vois le message "Le nouveau mot de passe doit être différent de l'ancien"

  Scénario: Notification sur tous les appareils après changement de mot de passe
    Étant donné que je suis connecté sur 3 appareils différents
    Quand je change mon mot de passe depuis mon iPhone
    Alors je reçois une notification push sur mes 2 autres appareils
    Et je reçois un email de confirmation avec:
      | sujet          | Votre mot de passe a été modifié |
      | appareil       | iPhone 13 - Safari               |
      | localisation   | Paris, France                    |
      | action_urgence | Lien pour sécuriser le compte    |

  # ==========================================
  # Changement d'email
  # ==========================================

  Scénario: Changement d'email avec vérification
    Quand je change mon email pour "nouveau@test.fr"
    Alors un email de vérification est envoyé à "nouveau@test.fr"
    Et mon ancien email "user@test.fr" reste actif pour la connexion
    Et je vois le message "Email de vérification envoyé à nouveau@test.fr"
    Et le lien de vérification expire dans 7 jours

  Scénario: Validation du changement d'email
    Étant donné que j'ai demandé un changement d'email pour "nouveau@test.fr"
    Et que j'ai reçu le lien de vérification
    Quand je clique sur le lien de vérification dans l'email
    Alors mon email est changé pour "nouveau@test.fr"
    Et je reçois une notification sur l'ancien email "user@test.fr"
    Et je vois le message "Email modifié avec succès"
    Et je dois utiliser "nouveau@test.fr" pour me connecter désormais

  Scénario: Changement d'email vers un email déjà utilisé
    Étant donné qu'un utilisateur existe avec l'email "existant@test.fr"
    Quand j'essaie de changer mon email pour "existant@test.fr"
    Alors le changement échoue
    Et je vois le message "Cet email est déjà utilisé par un autre compte"

  Scénario: Changement d'email avec format invalide
    Quand j'essaie de changer mon email pour "email.invalide"
    Alors le changement échoue
    Et je vois le message "Format d'email invalide"

  Scénario: Expiration du lien de vérification de changement d'email
    Étant donné que j'ai demandé un changement d'email il y a 8 jours
    Quand j'essaie d'utiliser le lien de vérification
    Alors la vérification échoue
    Et je vois le message "Ce lien a expiré"
    Et mon email reste inchangé à "user@test.fr"
    Et je peux demander un nouveau changement d'email

  Scénario: Annulation du changement d'email avant vérification
    Étant donné que j'ai demandé un changement d'email pour "nouveau@test.fr"
    Et que je n'ai pas encore vérifié le nouveau email
    Quand je demande à annuler le changement d'email
    Alors la demande de changement est annulée
    Et le lien de vérification est invalidé
    Et mon email reste "user@test.fr"

  Scénario: Limite de changements d'email
    Étant donné que j'ai déjà changé mon email 2 fois dans les 30 derniers jours
    Quand j'essaie de changer mon email une 3ème fois
    Alors le changement échoue
    Et je vois le message "Maximum 2 changements d'email par mois"

  Scénario: Notification de sécurité sur l'ancien email
    Étant donné que j'ai changé mon email de "ancien@test.fr" à "nouveau@test.fr"
    Alors je reçois un email sur "ancien@test.fr" avec:
      | sujet          | Votre adresse email a été modifiée |
      | contenu        | Votre email de connexion est maintenant nouveau@test.fr |
      | date_heure     | présente                           |
      | appareil       | présent                            |
      | action_urgence | Lien pour annuler si ce n'était pas vous |

  # ==========================================
  # Changement de pseudo
  # ==========================================

  Scénario: Changement de pseudo valide
    Quand je change mon pseudo pour "nouveau_pseudo"
    Alors mon pseudo est modifié avec succès
    Et je vois le message "Pseudo modifié avec succès"
    Et le nouveau pseudo apparaît sur mon profil

  Scénario: Changement de pseudo invalide - trop court
    Quand j'essaie de changer mon pseudo pour "ab"
    Alors le changement échoue
    Et je vois le message "Le pseudo doit contenir entre 3 et 30 caractères"

  Scénario: Changement de pseudo invalide - caractères spéciaux
    Quand j'essaie de changer mon pseudo pour "user@123"
    Alors le changement échoue
    Et je vois le message "Le pseudo ne peut contenir que des lettres, chiffres et underscores"

  Scénario: Changement de pseudo déjà utilisé
    Étant donné qu'un utilisateur existe avec le pseudo "pseudo_existant"
    Quand j'essaie de changer mon pseudo pour "pseudo_existant"
    Alors le changement échoue
    Et je vois le message "Ce pseudo est déjà utilisé"

  Scénario: Limite de changements de pseudo
    Étant donné que j'ai changé mon pseudo il y a 15 jours
    Quand j'essaie de changer mon pseudo à nouveau
    Alors le changement échoue
    Et je vois le message "Vous ne pouvez changer votre pseudo qu'une fois par mois"

  # ==========================================
  # Consultation des informations de compte
  # ==========================================

  Scénario: Consulter les informations de mon compte
    Quand je consulte les paramètres de mon compte
    Alors je vois les informations suivantes:
      | champ            | valeur         |
      | Email            | user@test.fr   |
      | Pseudo           | user_test      |
      | Date création    | 15/01/2026     |
      | Email vérifié    | Oui            |
      | 2FA activée      | Non            |
      | Abonnement       | Gratuit        |

  Scénario: Historique des changements de sécurité
    Quand je consulte l'historique de sécurité de mon compte
    Alors je vois la liste des événements suivants:
      | événement                  | date       | appareil    |
      | Changement mot de passe    | 01/02/2026 | iPhone 13   |
      | Activation 2FA             | 25/01/2026 | iPad Pro    |
      | Changement email           | 20/01/2026 | PC Windows  |
      | Création compte            | 15/01/2026 | iPhone 13   |
