|
================================================================
|
|
QA MANUELLE - Redmine #20
|
|
"Preuves sociales / social-proof sur la landing page"
|
|
================================================================
|
|
Date : 2026-06-11
|
|
Branche : feat/redmine-20-social-proof
|
|
PR : https://github.com/omdev-tech/GetYourJob/pull/231 (base dev)
|
|
Worktree : .worktrees/redmine-20-social-proof
|
|
Commit testé: a14122b feat(landing): add custom social-proof carousel section (Redmine #20)
|
|
Statut entree: QA
|
|
Verdict : PASS (tous les criteres d'acceptation OK)
|
|
|
|
NB sur l'approche (decision de spec, voir spec_ref) : composant React custom
|
|
stylé (Atomic Design) alimenté par une config (src/config/social-proof.ts)
|
|
plutôt que le TrustBox officiel Trustpilot (style figé, ~0 avis en pre-launch).
|
|
Critere "widget Trustpilot iframe" lu comme "section preuve sociale + lien
|
|
Trustpilot" conformement a la decision de spec actee sur l'epic.
|
|
|
|
----------------------------------------------------------------
|
|
1. FICHIERS DE LA FEATURE (diff vs origin/dev)
|
|
----------------------------------------------------------------
|
|
src/components/atoms/RatingStars.tsx
|
|
src/components/atoms/__tests__/RatingStars.test.tsx
|
|
src/components/molecules/TestimonialCard.tsx
|
|
src/components/molecules/__tests__/TestimonialCard.test.tsx
|
|
src/components/organisms/landing/LandingSocialProof.tsx
|
|
src/components/organisms/landing/__tests__/LandingSocialProof.test.tsx
|
|
src/components/organisms/landing/__tests__/socialProof.i18n.test.ts
|
|
src/components/templates/LandingPage.tsx
|
|
src/config/social-proof.ts
|
|
src/infrastructure/i18n/translations/en.ts
|
|
src/infrastructure/i18n/translations/fr.ts
|
|
|
|
----------------------------------------------------------------
|
|
2. SUITES DE TESTS (vitest) - suites touchees
|
|
----------------------------------------------------------------
|
|
Commande:
|
|
npx vitest run \
|
|
src/components/atoms/__tests__/RatingStars.test.tsx \
|
|
src/components/molecules/__tests__/TestimonialCard.test.tsx \
|
|
src/components/organisms/landing/__tests__/LandingSocialProof.test.tsx \
|
|
src/components/organisms/landing/__tests__/socialProof.i18n.test.ts
|
|
|
|
Resultat:
|
|
Test Files 4 passed (4)
|
|
Tests 20 passed (20)
|
|
(warnings React "act(...)" non bloquants sur les tests timer/click)
|
|
|
|
----------------------------------------------------------------
|
|
3. TYPECHECK (tsc --noEmit)
|
|
----------------------------------------------------------------
|
|
Commande: npx tsc --noEmit
|
|
Resultat: erreurs PRE-EXISTANTES repo-wide uniquement, AUCUNE sur les fichiers
|
|
de la feature (companyPageData.ts, subscription-limits.ts, cron-geocode-jobs.ts,
|
|
test-real-job-recommendations.ts, validateurs de routes API .next/types).
|
|
Le grep cible (social-proof|SocialProof|RatingStars|TestimonialCard|config/social)
|
|
ne remonte aucune erreur dans le code de la feature.
|
|
(Le repo build avec next.config ignoreBuildErrors; erreurs tsc historiques.)
|
|
|
|
----------------------------------------------------------------
|
|
4. BUILD DE PRODUCTION (npm run build)
|
|
----------------------------------------------------------------
|
|
Commande: npm run build
|
|
Resultat: BUILD_EXIT=0
|
|
- "Compiled successfully in 16.1s"
|
|
- Route racine "/" (landing) = ƒ (Dynamic, server-rendered on demand) -> OK
|
|
- Aucune erreur liee a la feature.
|
|
- Le LandingSocialProof est importe via next/dynamic({ssr:false}) +
|
|
'use client'; pas d'import Prisma cote client -> pas de fuite client/Prisma.
|
|
|
|
----------------------------------------------------------------
|
|
5. SMOKE NAVIGATEUR (gstack browse, headless)
|
|
----------------------------------------------------------------
|
|
Serveur de dev: npm run dev -- -p 3010 (port dedie, GET / -> 200)
|
|
Navigation: http://localhost:3010/ -> 200, wait --networkidle.
|
|
|
|
Verifications DOM/CSS (selecteur [data-social-proof-carousel]):
|
|
- Section presente et rendue cote client (dynamic ssr:false) -> FOUND
|
|
- Heading : "Ils font deja confiance a GetYourJob"
|
|
- Note moyenne : 4,9/5
|
|
- Nombre d'avis : "120 avis verifies"
|
|
- Cartes desktop visibles: 3 (grille lg:grid-cols-3, centrale emphase)
|
|
- Fleches prev/next : presentes (aria "Temoignage precedent/suivant")
|
|
- Dots : 3 (aria "Aller au temoignage N")
|
|
- Navigation manuelle : clic "suivant" -> dot actif change (1 -> 0) OK
|
|
- Lien "Voir tous les avis":
|
|
target=_blank, rel="noopener noreferrer",
|
|
href=https://www.trustpilot.com/review/getyourjob.pro (nouvel onglet OK)
|
|
- Couleur fond section : rgb(249,249,249) = #F9F9F9 (charte OK)
|
|
- Couleur etoiles pleines: #00B67A (vert Trustpilot) (charte OK)
|
|
- Couleur etoiles vides : #E5E5E5 (gris bordure) (charte OK)
|
|
|
|
Responsive:
|
|
- Desktop 1440px : grille 3 cartes visible, bloc mobile masque.
|
|
- Mobile 390px : bloc single-card + swipe visible (lg:hidden),
|
|
grille desktop masquee (desktopGridVisible=false).
|
|
-> 1 carte + swipe conforme.
|
|
|
|
Auto-defilement:
|
|
- Intervalle 5000ms (AUTO_ADVANCE_MS), demarre a l'entree en viewport
|
|
(IntersectionObserver), en pause au hover/focus/onglet cache/reduced-motion.
|
|
Observe en pratique (le dot actif avait deja avance avant interaction).
|
|
|
|
----------------------------------------------------------------
|
|
6. CONSOLE NAVIGATEUR
|
|
----------------------------------------------------------------
|
|
Erreurs console = PRE-EXISTANTES et SANS rapport avec la feature:
|
|
- Badge ProductHunt (footer) bloque par CSP img-src (local).
|
|
- Widget chat Tawk.to bloque par CORS (local).
|
|
- Warnings next/image aspect-ratio sur logos du footer.
|
|
Aucune erreur emise par la section preuves sociales.
|
|
|
|
----------------------------------------------------------------
|
|
7. NON-REGRESSION LANDING
|
|
----------------------------------------------------------------
|
|
- Reste de la landing rendu normalement (hero, pricing, referral, CTA...).
|
|
- Build prod complet OK -> pas de regression de compilation.
|
|
- Section inseree entre les sections existantes et immediatement avant
|
|
LandingCTA (CTA "Rejoignez le groupe fondateur"), apres LandingHowItWorks.
|
|
|
|
================================================================
|
|
CONCLUSION: PASS - tous les criteres d'acceptation smoke sont OK.
|
|
(Secrets/tokens/passwords: aucun inclus; logs filtres.)
|
|
================================================================
|