Skip to content

test(recette): recette après correctif BUG-01 à 06 (NE PAS FUSIONNER) - #36

Draft
iPoower wants to merge 6 commits into
mainfrom
test/recette-apres
Draft

iPoower wants to merge 6 commits into
mainfrom
test/recette-apres

Conversation

@iPoower

@iPoower iPoower commented Oct 29, 2026

Copy link
Copy Markdown
Owner

⚠️ NE PAS FUSIONNER — recette « après » (Phase T)

Rejoue la recette de la PR #34 sur le correctif de la PR #35 pour produire l'artefact « après ».

Données fictives uniquement, Google entièrement simulé.


Generated by Claude Code

…bKit iPhone)

Banc de recette séparé (tests/recette/, configuration Playwright dédiée,
jamais lancé par `npm run test:e2e`) et workflow « Recette Phase T » :

- parcours utilisateur cliqué : connexion Google simulée → dossier dédié →
  liste des versions → « Vérifier et télécharger » (SHA-256 du fichier reçu
  comparé à la copie chiffrée fictive) ;
- exploration systématique de tous les boutons, liens et champs visibles de
  chaque écran, état réinitialisé avant chaque élément, matrice OK / KO /
  DÉSACTIVÉ-SANS-EXPLICATION / NON TESTABLE et couverture n/N ;
- session « monkey » de 5 min par navigateur (graine reproductible) ;
- erreurs console / exceptions capturées et expliquées, captures par étape,
  traces Playwright, sorties recette-output/ (matrix.json, MATRICE.md,
  errors.json, screenshots/, traces/) ;
- reproductions BUG-01 à BUG-05 marquées test.fail(), sans correctif.

Données fictives uniquement ; Google, Picker et Drive entièrement simulés,
toute autre requête bloquée. Aucun changement dans src/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E5jwZntqAvJaRThsuEjgja
…G-06

- erreurs console reçues pendant une capture d'écran marquées (pendantCapture) ;
  sous WebKit, Playwright insère <style>body {}</style> avant chaque capture
  (synchronisation des animations) et la CSP style-src 'self' la refuse :
  classée « attendue », artefact du banc et non de l'application ;
- BUG-06 : « Annuler » de la sauvegarde désactivé sans explication pendant le
  contrôle de l'empreinte (test.fail, aucun correctif).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E5jwZntqAvJaRThsuEjgja
L'état « Annuler désactivé » dure trop peu pour un sondage : un observateur
dans la page enregistre l'instant exact et la description éventuelle.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E5jwZntqAvJaRThsuEjgja
…1 à 06)

Corrige les anomalies relevées par la recette Phase T (PR #34), sans toucher
à la cryptographie, au format, au stockage, à la CSP ni au service worker :

- BUG-01 : fenêtre Google fermée/bloquée (error_callback) → code « popup »,
  message « Connexion Google annulée ou fenêtre bloquée… », état neutre ;
- BUG-02 : autorisation Drive refusée ou décochée → code « scope », message
  expliquant que l'accès n'a pas été accordé ; plus jamais « session
  expirée » ni « synchronisation bloquée » sans session préalable ;
- BUG-03 : sélecteur annulé → « Aucun dossier choisi. », pas d'erreur ;
- BUG-04 : sur l'origine où Google Drive est configuré, seuls l'écran Google
  Drive et sa navigation sont affichés (autres routes redirigées, recherche
  rapide et raccourcis désactivés) ; premier rendu après lecture de la
  configuration pour ne jamais montrer d'état de démonstration ;
- BUG-05 : « Restaurer cette version » décrit par un texte visible
  (aria-describedby) tant qu'il est désactivé ;
- BUG-06 : « Annuler » retiré à l'étape de contrôle, comme le commentaire
  l'annonçait, au lieu d'être laissé désactivé sans explication.

Tests : tests/e2e/messages-exacts.spec.ts (rouges sur main, verts ici) ;
connected-drive.spec.ts suit la redirection de Réglages vers Google Drive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E5jwZntqAvJaRThsuEjgja
- BUG-01 à BUG-06 : marqueurs test.fail() retirés (anomalies corrigées), les
  tests doivent désormais passer ;
- écrans de démonstration explorés en mode démo explicite (origine sans
  configuration Google), écran Google Drive sur l'origine connectée ;
- parcours mobile : onglet Google Drive direct quand il existe.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E5jwZntqAvJaRThsuEjgja
Comment thread tests/recette/report.ts
try { return JSON.parse(readFileSync(join(OUT, 'partials', file), 'utf8')) as T; } catch { return null; }
}
const pct = (n: number, d: number) => (d ? Math.round((1000 * n) / d) / 10 : 0);
const md = (s: unknown) => String(s ?? '').replace(/\|/g, '\\|').replace(/\n/g, ' ');

This branch has not been deployed

No deployments
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.

3 participants