- Lancer l'API et la DB en suivant les instructions dans la section Démarrage
- Tester l'application sur le playground GraphQL à l'adresse http://localhost:3000/graphql
- Parcourir la documentation NestJs
- Executer les tests e2e
- Cloner ce repository sur un repository github qui pourra être accessible en public
- Effectuer les modifications nécessaires pour répondre aux problèmes mentionnés
- A chaque question, effectuer un
commit
sur le repository public
Installation globale pour NestJs pour pouvoir utiliser la CLI
$ npm i -g @nestjs/cli
Pour désinstaller à la fin si tu ne veux plus NestJs sur ton ordinateur
$ npm i uninstall -g @nestjs/cli
$ npm install
$ docker compose up
# development
$ npm run start
# watch mode
$ npm run start:dev
# e2e tests
$ npm run test:e2e
Il semblerait qu'il y ai un problème pour récupérer les adresses e-mails d'un utilisateur sur l'API.
Dans la documentation de l'API GraphQL disponible sur le playground, on remarque que le type graphql d'un User
n'est pas un tableau de UserEmail[]
mais un seul UserEmail
.
Dans le fichier
/test/app.e2e-spec.ts
, active les tests[02]
et[03]
en enlevant.skip
sur les tests en question.Voir la documentation NestJs sur les resolvers GraphQL
Les filtres equal
et in
sur les adresses e-mails ne fonctionnent pas ensembles.
On voudrait maintenant que ce soit le cas.
Quand les deux filtres sont présents, on voudrait en résultat avoir une liste avec l'email correspondant à equal
mais aussi les emails faisant partie de in
Dans le fichier
/test/app.e2e-spec.ts
, active le test[06]
Voir la documentation TypeORM sur les conditions dans TypeORM
Quand on essaie d'ajouter un utilisateur, on devrait contrôler la validité les données entrantes.
- Si le nom de l'utilisateur est vide, on devrait avoir l'erreur de validation Le nom de l'utilisateur n'est pas défini
- Si la date de naissance est définie dans le future, on devrait avoir l'erreur de validation La date de naissance ne peut pas être définie dans le future
Dans le fichier
/test/app.e2e-spec.ts
, active les tests[08]
et[09]
Voir la documentation NestJs sur les validateurs
La partie EmailResolver
a un peu été laissée en plan, et rien n'a été implémenté, il n'y a que des commentaires qui expliquent rapidement ce qui doit être fait.
Ca serait bien d'implémenter ces fonctionnalités.
Dans le fichier
/test/app.e2e-spec.ts
, active les tests[10]
,[11]
,[12]
les uns après les autres
Je crois qu'on a oublié les mutations pour ajouter et supprimer des adresses e-mails pour les utilisateurs.
Deux règles à respecter :
- Une adresse e-mail doit être validée comme étant une adresse e-mail valide (nooooooooon!)
- Dès qu'un utilisateur est
inactif
, on ne devrait plus pouvoir lui ajouter d'email ou en supprimer.
Voir la documentation NestJs sur les mutations GraphQL
Essayer de faire des tests unitaires / end to end pour sécuriser les développements
Voir la documentation NestJs sur les tests unitaires / e2e