Hypertopic / Porphyry

Corpus analyses confrontation
https://hypertopic.org/porphyry
GNU Affero General Public License v3.0
21 stars 165 forks source link

TEST: Scenarios - Authorize a contributor to edit a viewpoint (see #183) #503

Closed candalc closed 3 years ago

candalc commented 3 years ago

Content

Scenarios (Gherkin) which illustrate the feature "Authorize a contributor to edit a viewpoint" (ticket #183) done with @Samnoel95. Since the ticket corresponds to a new feature, we put the scenarios in a new file named viewpoint_authorize_editing.feature, according to the other scenarios files in the features folder.


Checklist

Please check that your pull request is correct:

benel commented 3 years ago

Merci pour ce scénario @candalc @Samnoel95.

Vous avez une erreur à la ligne 33:

features/viewpoint_authorize_editing.feature: (33:1): expected: #EOF, #TableRow, #DocStringSeparator, #StepLine, #TagLine, #ExamplesLine, #ScenarioLine, #RuleLine, #Comment, #Empty, got 'Fonctionnalité: Ajouter un contributeur à la liste d'édition d'un point de vue' (Cucumber::Core::Gherkin::ParseError)

Comme l'indique le message, cucumber ne s'attendait pas à trouver Fonctionnalité à cette ligne. C'est parce que normalement, il n'y en a qu'une par fichier.

candalc commented 3 years ago

Je vous conseille donc :

  • de décrire en français l'ensemble des cas pour A, B et X,
  • de vérifier que vous avez l'histoire complète pour montrer ce qui se passe, autrement dit pour voir ce qui change (ou pas) entre la situation initiale (avant le QUAND) et la situation finale (après le QUAND).

Après réécriture des scénarios, on aboutit à la version suivante des scénarios écrits en français. Pour vérifier que l'utilisateur peut bien modifier un point de vue, on s'appuie sur le fait que le bouton cliquable de modification d'un point de vue redirige vers la page avec l'url qui se termine par .../viewpoint/id_viewpoint. On aurait donc :

Scénario : L'utilisateur est noté sur la liste d'édition du point de vue

Scénario : Le contributeur est l'auteur d'un point de vue

Scénario : La liste d'édition du point de vue n'est pas définie

Scénario : L'utilisateur n'est pas noté sur la liste d'édition du point de vue

Scénario : L'utilisateur n'est pas connecté

Scénario : L'utilisateur ajoute un contributeur à la liste d'édition

Que pensez-vous de cette ébauche de scénarios @benel ?

benel commented 3 years ago

Merci @candalc pour cette nouvelle version de vos scénarios. Quand je disais "en français", c'était pour éviter le caractère un peu formel de Cucumber : c'était pour réduire un peu la difficulté de faire un scénario parfait dès le début... Mais bon, ce n'est pas grave. Si ça vous va ainsi...

Après réécriture des scénarios, on aboutit à la version suivante des scénarios écrits en français. Pour vérifier que l'utilisateur peut bien modifier un point de vue, on s'appuie sur le fait que le bouton cliquable de modification d'un point de vue redirige vers la page avec l'url qui se termine par .../viewpoint/id_viewpoint. On aurait donc :

Ce n'est pas le choix qui a été fait jusqu'à maintenant dans l"interface de Porphyry : on peut essayer de tout faire (même sans être connecté). C'est juste que ça n'aura aucun effet. Autrement dit, on a privilégié l'exploration de l'interface au profit de la certitude que l'on n'est pas en train de perdre son temps. Comme tout choix de conception, il est discutable. Cependant, si on choisissait de faire un autre choix aujourd'hui, il faudrait appliquer ce nouveau choix sur l'ensemble de l'application.

L'intérêt pour vous du choix de conception qui a été fait c'est que cela rend plus facile la description du comportement :

  Soit "Truc" un truc dont les contributeurs sont "alice|charly"
  Et "bob" l'utilisateur connecté
  Quand l'utilisateur machine "Truc"
  Alors "Truc" n'est pas machiné

Je vous laisser reformuler vos scénarios ainsi (et cette fois-ci avec des noms d'utilisateur et de points de vue).

Scénario : L'utilisateur n'est pas connecté

Inutile d'écrire ce scénaro. Ceci est un problème d'authentification et non d'autorisation. C'est déjà géré.