Skip to content

fix(backoffice): la connexion attend son issue, pas une durée fixe - #117

Merged
PrestaEdit merged 1 commit into
devfrom
fix/bo-login-wait-outcome
Oct 6, 2026
Merged

PrestaEdit merged 1 commit into
devfrom
fix/bo-login-wait-outcome

Conversation

@PrestaEdit

Copy link
Copy Markdown
Contributor

Problème

Le check obligatoire « Visual 9.2.0 classic » a échoué une fois sur la #114 : « Connexion au back-office impossible : identifiants refusés ou page inattendue ». Il est passé à la relance, sans changement de code.

Cause.

  • Après le clic, login() attendait 10 s le rechargement, puis isLoggedIn() 5 s le lien de déconnexion.
  • Le premier tableau de bord après le vidage des caches (install-french.sh) dépasse parfois ces 15 s sur un runner chargé.
  • La session était ouverte, mais la page était encore en chargement.
  • Comme aucune alerte n'était affichée, le message ne disait rien de plus.

Reproduction. Sur une boutique 9.2 Flashlight jetable, bridée à 0,25 CPU, avec le cache vidé et la page de connexion chauffée comme en CI :

  • au moment de l'abandon, l'onglet est déjà sur AdminDashboard (readyState: loading) ;
  • le lien de déconnexion apparaît 0,5 s plus tard ;
  • avec le code de dev, la suite BackOffice échoue avec le même message que le CI.

Fréquence : 1 échec sur environ 135 exécutions BO dans les 45 derniers runs Visual.

Les scénarios utilisent le même login() puis isLoggedIn() : ils échouent aussi à tort sur une boutique lente.

Correctif

  • Login\Page::waitForLoginOutcome()

    • attend le lien de déconnexion, ou une alerte d'erreur qui contient du texte (en 1.7 et 8, le conteneur vide est présent dès le chargement) ;
    • plafond de 60 s ;
    • appelée par login() quand il attend la navigation.

    Une boutique rapide ne perd rien : chacun des deux signaux arrête l'attente dès qu'il apparaît.

  • Message de VisualTestsSuite

    • lit .alert-text, sans le « close » du bouton de fermeture : en 9.2, c'était la seule ligne affichée ;
    • ramène les espaces à un seul ;
    • sans alerte, ajoute la page courante, par exemple (page : /admin-dev/?controller=AdminDashboard), sans le jeton.

Vérification

  • vendor/bin/phpunit : 550 tests OK. Nouveaux tests : BackOfficeLoginOutcomeTest, plus deux cas dans VisualTestsSuiteBackOfficeTest.

  • Boutique bridée, suite BackOffice (login,dashboard) :

    Cas Résultat
    Code de dev échec, même message que le CI
    Correctif, 3 runs verts
    Mauvais mot de passe échec en 14 s : « … : The employee does not exist, or the password provided is incorrect. »

🤖 Generated with Claude Code

Après le clic, login() attendait 10 s le rechargement, puis isLoggedIn() 5 s
le lien de déconnexion. Le premier tableau de bord après un vidage de cache
dépasse parfois ces 15 s sur un runner CI chargé : la session était ouverte,
la page encore en chargement, et la connexion était déclarée refusée
(check « Visual 9.2.0 classic » de la #114, reproduit sur une boutique bridée).

- Login\Page::waitForLoginOutcome() : attend le lien de déconnexion ou une
  alerte d'erreur avec du texte (plafond 60 s), appelée par login().
- VisualTestsSuite : le message d'erreur lit .alert-text (sans le « close »
  du bouton en 9.2) sur une ligne ; sans alerte, il donne la page courante
  (chemin et contrôleur, sans jeton).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PrestaEdit
PrestaEdit merged commit 49dde89 into dev Oct 6, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant