[Majeur] Events : expireAt et date non validés (absents, passés, expiration avant la date) #107

Closed
opened 2026-10-28 10:32:03 +00:00 by asventi · 0 comments
Owner

Gravité : Majeur
Rapports QA d'origine : EVENTS-02, EVENTS-04

L'API accepte ces valeurs ; l'event est ensuite supprimé silencieusement par le CleanUp.

Détails des rapports

[EVENTS-02] expireAt absent / antérieur à la date / déjà passé accepté -> l'event sera supprimé par CleanUp — Gravité : Majeur
  • Où : POST /api/events
  • Étapes : 1. POST sans expireAt -> 201, GET renvoie expireAt: "0001-01-01T00:00:00". 2. POST avec expireAt < date, ou expireAt en 2020 -> 201.
  • Attendu : 400 (expireAt requis, > date) ou valeur par défaut raisonnable.
  • Obtenu : événements créés déjà "expirés" ; CleanUp (BackgroundService, tick toutes les heures) supprime ExpireAt < now -> disparition silencieuse de l'event (et de ses inscriptions) dans l'heure.
  • Cause probable : backend/API/Events/Create/CreateEventEndpoint.cs:18 (ExpireAt sans [Required]/validation), CleanUp/CleanUp.cs:58.
  • Statut : création confirmée (1re passe) ; suppression effective par CleanUp à vérifier (tick horaire).
[EVENTS-04] Date absente / passée / extrême acceptée par l'API — Gravité : Mineur
  • Où : POST /api/events
  • Obtenu : date omise -> 201 avec 0001-01-01 (le [Required] sur un DateTime non nullable ne valide rien) ; date en 2020, 0001-01-01, 9999-12-31 -> 201. Aucune validation "date >= maintenant". L'UI n'a qu'un attribut min sur le champ (contournable).
  • Cause probable : CreateEventEndpoint.cs:16-17.
  • Statut : confirmé (1re passe).

Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.

**Gravité :** Majeur **Rapports QA d'origine :** EVENTS-02, EVENTS-04 L'API accepte ces valeurs ; l'event est ensuite supprimé silencieusement par le CleanUp. ## Détails des rapports <details><summary>[EVENTS-02] expireAt absent / antérieur à la date / déjà passé accepté -> l'event sera supprimé par CleanUp — Gravité : Majeur</summary> - Où : `POST /api/events` - Étapes : 1. POST sans `expireAt` -> 201, `GET` renvoie `expireAt: "0001-01-01T00:00:00"`. 2. POST avec `expireAt` < `date`, ou `expireAt` en 2020 -> 201. - Attendu : 400 (expireAt requis, > date) ou valeur par défaut raisonnable. - Obtenu : événements créés déjà "expirés" ; `CleanUp` (BackgroundService, tick toutes les heures) supprime `ExpireAt < now` -> disparition silencieuse de l'event (et de ses inscriptions) dans l'heure. - Cause probable : `backend/API/Events/Create/CreateEventEndpoint.cs:18` (`ExpireAt` sans `[Required]`/validation), `CleanUp/CleanUp.cs:58`. - Statut : création confirmée (1re passe) ; suppression effective par CleanUp à vérifier (tick horaire). </details> <details><summary>[EVENTS-04] Date absente / passée / extrême acceptée par l'API — Gravité : Mineur</summary> - Où : `POST /api/events` - Obtenu : `date` omise -> 201 avec `0001-01-01` (le `[Required]` sur un `DateTime` non nullable ne valide rien) ; `date` en 2020, `0001-01-01`, `9999-12-31` -> 201. Aucune validation "date >= maintenant". L'UI n'a qu'un attribut `min` sur le champ (contournable). - Cause probable : `CreateEventEndpoint.cs:16-17`. - Statut : confirmé (1re passe). </details> --- _Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes._
asventi self-assigned this 2026-10-28 13:49:13 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transcendence/backend#107
No description provided.