Comment tester un application Next FullStack ?
Mike Codeur
โ Tu crois tester ton application Next.js correctement ? Mais que se passe-t-il quand tu as des React Server Components et des Server Actions ?
๐จ Spoiler alert : tu ne peux pas tester les RSC avec React Testing Library.
Si tu fais du dรฉveloppement fullstack tu ne peux pas te contenter de tests liรฉs ร la prรฉsentation (et en plus uniquement cรดtรฉ client).
Testing Library ne permet pas de tester les RSC, alors comment tester une application FullStack Next.js ?
Mon approche :
- Tests unitaires (couche par couche)
- Tests dโintรฉgration (multi-couches)
- Tests E2E
1๏ธโฃ Tests unitaires :
- Prรฉsentation : Tests des RCC, hooks et context avec React Testing Library
- Service Layer : Tests des services (avec mock de la persistance/auth โฆ)
- Persistance : Tests avec une BDD conteneurisรฉe (Testcontainers est excellent pour รชtre au plus proche de la base cible)
2๏ธโฃ Tests dโintรฉgration :
- Principalement des tests de services (non mockรฉs) qui doivent sโintรฉgrer avec tout le reste :
- Authentification
- Validation
- RBAC (gestion des rรดles)
- Persistance
3๏ธโฃ Tests E2E :
- Tests End-to-End sur un build de production (mais sur un environnement de test)
โ Cโest quasiment le seul moyen de tester correctement les RSC
Un petit Husky + CI/CD, et tu peux commit & push sur main un vendredi soir sans stress. ๐
PS : La team RTL et Next travaillent sur un support natif des RSC avec render(). ๐ ๐๐๐ : ๐๐จ๐ฎ๐ญ ๐๐๐ฅ๐ ๐๐ฌ๐ญ ๐๐จ๐ฎ๐ฏ๐๐ซ๐ญ ๐๐๐ง๐ฌ ๐ฅ๐ ๐ฆ๐จ๐๐ฎ๐ฅ๐ ๐ฌ๐ฎ๐ซ ๐ฅ๐๐ฌ ๐ญ๐๐ฌ๐ญ๐ฌ ๐ ๐ฎ๐ฅ๐ฅ๐๐ญ๐๐๐ค ๐๐ฏ๐๐ ๐๐๐ฑ๐ญ.๐ฃ๐ฌ ๐๐ ๐ฆ๐จ๐ง ๐ฉ๐ซ๐จ๐ ๐ซ๐๐ฆ๐ฆ๐ ๐๐๐ฑ๐ญ ๐๐๐ฌ๐ญ๐๐ซ๐ฒ.
Et toi quel approche FullStack pour les tests ?
