Repository navigation
Conversation
…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
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
| 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rejoue la recette de la PR #34 sur le correctif de la PR #35 pour produire l'artefact « après ».
fix/recette-messages(ba98f84) + fusion detest/recette-phase-t(bddb22f), puis un commit de tests uniquement (tests/recette/) :test.fail()retirés, les tests décrivant le comportement attendu doivent passer ;src/dans cette PR par rapport à fix(cv): messages de connexion/dossier exacts et accessibilité (BUG-01 à 06) #35, aucun changement de workflow par rapport à test(recette): Phase T — recette testeur Control Vault (NE PAS FUSIONNER) #34.tests/unit/pipeline.test.ts(présence derecette.yml) : attendu, non modifié.Données fictives uniquement, Google entièrement simulé.
Generated by Claude Code