Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.66% (553/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 80.20% (555/692)
* Lines of Code: 692
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 80.90% (555/686)
* Lines of Code: 686
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 80.85% (553/684)
* Lines of Code: 684
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 80.85% (553/684)
* Lines of Code: 684
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.94% (547/644)
* Lines of Code: 644
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.94% (547/644)
* Lines of Code: 644
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.66% (553/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Tests / Frontend - Lint, Tests et Build src/test/fonctionnel/Accueil.test.jsx.Accueil - dates du jeu-concours > affiche les dates fixées dans le tableau de bord admin failed
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.66% (553/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.94% (547/644)
* Lines of Code: 644
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.94% (547/644)
* Lines of Code: 644
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.94% (547/644)
* Lines of Code: 644
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Tests / Frontend - Lint, Tests et Build src/test/fonctionnel/Accueil.test.jsx.Accueil - dates du jeu-concours > affiche les dates fixées dans le tableau de bord admin failed
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Tests / Frontend - Lint, Tests et Build src/test/fonctionnel/Accueil.test.jsx.Accueil - dates du jeu-concours > affiche les dates fixées dans le tableau de bord admin failed
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.38% (551/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 84.87% (505/595)
* Lines of Code: 595
#### Quality Gates Summary
No active quality gates.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 78.66% (553/703)
* Lines of Code: 703
#### Quality Gates Summary
No active quality gates.
Récupère la FAQ de la page d'accueil et la refonte de la page Contact, ainsi
que la chaîne CI/CD et l'infrastructure VPS HTTPS venues de main.
Résolution des 13 conflits :
- Footer : les deux corrections sont conservées. FooterLink sort du composant
(Alexis), la grille passe en une colonne sous 640 px et l'adresse email peut
se couper (audit responsive).
- Admin : le BOM du CSV adopte la séquence échappée d'Alexis, plus lisible que
le caractère invisible et sans règle de lint à désactiver.
- Contact : version d'Alexis retenue, plus complète, avec son formulaire.
- Connexion, Inscription : logos SVG conservés dans leur version nettoyée,
avec aria-hidden ; les gestionnaires OAuth et les champs d'inscription
restent en place.
- UserNav, Profile, services/admin : versions locales conservées.
- docker-compose : structure Traefik et domaines HTTPS d'Alexis, sur lesquels
sont regreffés FRONTEND_URL et les identifiants OAuth par substitution.
- Les deux package-lock régénérés depuis les package.json fusionnés.
Aligne au passage les derniers chemins d'API restés relatifs sur VITE_API_URL,
sans quoi le bouton Google et la configuration du jeu visaient le domaine du
front en déploiement.
Fiabilise trois tests de tirage au sort : la table GrandPrizeWinner est unique
pour tout le jeu et le vivier contient de vrais comptes, donc les suites
mettent désormais un éventuel tirage réel de côté et n'attendent plus de
connaître le gagnant à l'avance.
Backend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 60.55% (333/550)
* Lines of Code: 550
#### Quality Gates Summary
No active quality gates.
Frontend Coverage #### Project Overview
No changes detected, that affect the code coverage.
* Line Coverage: 86.14% (230/267)
* Lines of Code: 267
#### Quality Gates Summary
No active quality gates.
Intègre la chaîne CI/CD et la dockerisation venues de main.
Conflits sur backend/package-lock.json et frontend/package-lock.json :
résolus en régénérant les deux lockfiles depuis les package.json fusionnés,
qui réunissent les dépendances des deux branches (helmet, express-rate-limit,
passport, passport-google-oauth20 côté Emmanuel ; jest-junit côté main).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Ajoute l'authentification Google en complément de la connexion par mot de
passe. Le callback OAuth émet le même JWT que la connexion classique, donc
le middleware d'authentification et ProtectedRoute restent inchangés.
Backend
- stratégie passport-google-oauth20 dans src/config/passport.js
- routes GET /api/auth/google et /google/callback, documentées dans Swagger
- un compte existant avec le même email est rattaché automatiquement au
compte Google, et son email passe vérifié
- les routes répondent 503 si les identifiants ne sont pas configurés,
plutôt que de faire échouer le démarrage du serveur
- login et changePassword ne comparent plus un hash inexistant sur les
comptes sans mot de passe
Base de données
- password devient nullable
- colonnes provider, providerId et avatarUrl, index unique sur le couple
provider/providerId
Frontend
- page /auth/callback qui récupère le token et redirige selon le rôle
- boutons Google de Connexion et Inscription branchés
- boutons Facebook désactivés en attendant les identifiants Meta
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- helmet et express-rate-limit sur les routes d'authentification
- CORS restreint aux origines de FRONTEND_URL
- CSP désactivée uniquement sur /api-docs pour Swagger UI
- ajout du test de tirage et simplification du test e2e
- suppression de tests/setup.js devenu inutile
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>