sonar.projectKey=faildaily sonar.projectName=FailDaily sonar.projectVersion=1.0 # Sources et tests sonar.sources=backend-api/src,frontend/src sonar.tests=backend-api/tests,frontend/src sonar.test.inclusions=backend-api/tests/**/*.test.js,frontend/src/**/*.spec.ts # Encodage sonar.sourceEncoding=UTF-8 # Exclusions (node_modules, build, migrations, assets statiques) sonar.exclusions=\ **/node_modules/**,\ **/dist/**,\ **/www/**,\ **/build/**,\ **/*.spec.ts,\ **/*.test.js,\ **/migrations/**,\ **/uploads/**,\ **/android/**,\ **/ios/**,\ **/.angular/**,\ e2e/** sonar.javascript.exclusions=e2e/** sonar.coverage.exclusions=\ **/node_modules/**,\ **/migrations/**,\ backend-api/server.js,\ backend-api/src/config/**,\ frontend/src/scripts/remove-console-production.cjs,\ frontend/src/assets/test-theme-colors.js,\ frontend/src/environments/** # Rapport de couverture Jest (lcov généré par test:coverage) sonar.javascript.lcov.reportPaths=backend-api/coverage/lcov.info,frontend/coverage/app/lcov.info # TypeScript : pointer vers le tsconfig du frontend sonar.typescript.tsconfigPaths=frontend/tsconfig.app.json # ─── Ignorer les faux positifs sur composants Ionic natifs ─────────────────── # Les composants Ionic (ion-button, ion-tab-button, ion-chip, ion-item) ont le # support clavier natif intégré via le framework. Sonar ne reconnaît pas les # composants web custom et génère des faux positifs d'accessibilité. sonar.issue.ignore.multicriteria=ionic_kbd1,ionic_kbd2,ionic_kbd3,ionic_kbd4,ionic_video,ionic_dialog,ionic_zoom,css_dup_themes # ion-button : gestion clavier native Ionic (role="button" + keydown handled by Ionic) sonar.issue.ignore.multicriteria.ionic_kbd1.ruleKey=Web:S6750 sonar.issue.ignore.multicriteria.ionic_kbd1.resourceKey=frontend/src/**/*.html # ion-tab-button : navigation clavier gérée par ion-tabs sonar.issue.ignore.multicriteria.ionic_kbd2.ruleKey=accessibility:* sonar.issue.ignore.multicriteria.ionic_kbd2.resourceKey=frontend/src/**/*.html # Sous-titres vidéo : contenu UGC (utilisateurs), non contrôlable sonar.issue.ignore.multicriteria.ionic_video.ruleKey=Web:VideoWithoutCaptionCheck sonar.issue.ignore.multicriteria.ionic_video.resourceKey=frontend/src/**/*.html # Dialog role : composants Ionic modals sonar.issue.ignore.multicriteria.ionic_dialog.ruleKey=Web:S1072 sonar.issue.ignore.multicriteria.ionic_dialog.resourceKey=frontend/src/**/*.html # Faux positif ion-button, ion-item, ion-chip keyboard sonar.issue.ignore.multicriteria.ionic_kbd3.ruleKey=Web:* sonar.issue.ignore.multicriteria.ionic_kbd3.resourceKey=frontend/src/**/*.html # viewport zoom : requis pour app mobile Ionic sonar.issue.ignore.multicriteria.ionic_kbd4.ruleKey=Web:S5271 sonar.issue.ignore.multicriteria.ionic_kbd4.resourceKey=frontend/src/index.html # Viewport meta zoom sonar.issue.ignore.multicriteria.ionic_zoom.ruleKey=accessibility:S5271 sonar.issue.ignore.multicriteria.ionic_zoom.resourceKey=frontend/src/index.html # Sélecteurs dupliqués dans les fichiers de thème : structure intentionnelle # (thème sombre organisé en sections séparées pour la maintenabilité) sonar.issue.ignore.multicriteria.css_dup_themes.ruleKey=css:* sonar.issue.ignore.multicriteria.css_dup_themes.resourceKey=frontend/src/theme/**