Skip to content

fix(options): T-197 bouton radio desactivation module fonctionnel (bloquant MEP v1)#179

Merged
antonyblain merged 1 commit intodevelopfrom
feature/p5-tache-197-fix-module-toggle-radio
Apr 20, 2026
Merged

fix(options): T-197 bouton radio desactivation module fonctionnel (bloquant MEP v1)#179
antonyblain merged 1 commit intodevelopfrom
feature/p5-tache-197-fix-module-toggle-radio

Conversation

@antonyblain
Copy link
Copy Markdown
Owner

Cause racine

Le wrapper visuel du switch (div.toggle-switch-wrapper) était un élément <div> sans aucune liaison avec le checkbox sous-jacent. Cliquer sur le switch visuel (span.toggle-switch) n'émettait aucun événement changesaveConfig jamais appelé → chrome.storage.local non mis à jour. Tous les 7 modules concernés (M2/M3/M5/M6/M7/M9/M17).

Fix

switchWrapper passe de document.createElement('div') à document.createElement('label') + switchWrapper.htmlFor = inputId (1 ligne ajoutée). L'association HTML native garantit que cliquer sur la zone switch déclenche le change event sur le checkbox lié.

Fichiers modifiés

  • src/pages/options/options.tscreateModuleToggle : div → label (fix, +5 lignes commentaire)
  • tests/unit/pages/options/options-module-toggle.test.ts — 11 cas de test TC-01 à TC-10b (nouveau)

Tests

  • 11 nouveaux tests couvrant : structure label, liaison htmlFor, désactivation/réactivation pour chaque module, saveConfig avec modules[id]:false, tous les 7 modules (TC-07/TC-08), accessibilité (TC-09)
  • Suite complète : 64 fichiers / 1109 tests — 100% verts en local

Impact

  • CA-GLOBAL-02 (désactivation module) satisfait
  • RGPD Art. 7.3 (droit de retrait consentement M7) restauré
  • GAP-01 audit T-205 levé (bloquant MEP v1)

Test plan

  • Ouvrir la page Options de l'extension
  • Cliquer sur le toggle de chaque module (M2/M3/M5/M6/M7/M9/M17) — le switch doit changer d'état visuellement
  • Vérifier dans les DevTools > Application > Local Storage que config.modules.<id> est passé à false
  • Re-cliquer : doit repasser à true
  • Cliquer sur le libellé texte du module — doit aussi toggler (htmlFor intact)

🤖 Generated with Claude Code

…rapper

Cause racine : le wrapper visuel du switch etait un <div> sans liaison
avec le checkbox sous-jacent. Cliquer sur le switch visuel (span.toggle-switch)
n'emettait aucun evenement 'change' -> saveConfig jamais appele -> storage
non mis a jour. Tous les 7 modules concernes (M2/M3/M5/M6/M7/M9/M17).

Fix : switchWrapper passe de document.createElement('div') a
document.createElement('label') avec htmlFor=inputId. L'association HTML
native garantit que le clic sur la zone switch declenche le changement d'etat.

Tests : 11 nouveaux cas TC-01 a TC-10b dans options-module-toggle.test.ts
couvrant : structure label, liaison htmlFor, desactivation/reactivation,
saveConfig avec modules[id]:false, tous les 7 modules, accessibilite.

Impact : CA-GLOBAL-02 (desactivation module) satisfait + RGPD Art. 7.3
(droit de retrait consentement M7) restaure. Bloquant MEP v1 leve.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@antonyblain antonyblain enabled auto-merge (squash) April 20, 2026 20:42
@antonyblain antonyblain merged commit ecc8ee0 into develop Apr 20, 2026
6 checks passed
@antonyblain antonyblain deleted the feature/p5-tache-197-fix-module-toggle-radio branch April 20, 2026 20:44
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