[WIP] Bugfix : indispo qui termine avant de commencer #4983
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note : le nom de la branche n'est pas pertinent, ignorez-le. 😉
Contexte
En travaillant sur une première version de #4976, je tentais de factoriser la validation des champs horaires des plages et absences dans le concern partagé
RecurrenceConcern
. La specmodels/rdv_spec.rb:821
est alors passée au rouge. 🤔 J'ai alors découvert que cette spec crée une absence récurrente qui commence à 10h et finit à 10h, et que cette absence est valide ! 🤯Comportement actuel
Je peux créer une indispo dont l'heure de début est après l'heure de fin (seulement si j'active l'option de récurrence). Cette indispo est considérée valide et a 0 occurrences.
Comportement attendu
Si je tente de créer une indispo avec une heure de fin antérieure à l'heure de début, le fomulaire affiche une erreur et m'empêche de créer l'indispo.
Solution
Le bug est causé par le fait que
RecurrenceConcern#ends_at
retournenil
lorsque l'indispo est récurrente. Or,ends_at
est utilisée dans la validation sur les heures : siends_at
estnil
, alors on ne valide pas les heures. 😉