Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eclater le contrôleur de webhook Github #297

Open
mickaelalibert opened this issue Aug 28, 2023 · 0 comments
Open

Eclater le contrôleur de webhook Github #297

mickaelalibert opened this issue Aug 28, 2023 · 0 comments

Comments

@mickaelalibert
Copy link
Contributor

          C'est très bien d'avoir rajouté des tests, le merge de cette PR fera du bien à la codebase.

Cela dit, je partage tout de même une autre solution.

L'interface du fichier est
{
addMessageToPullRequest,
getMessage,
getMessageTemplate,
processWebhook,
pullRequestOpenedWebhook,
pullRequestSynchronizeWebhook,
pushOnDefaultBranchWebhook,
};

Seule cette fonction est utilisée (hors tests): processWebhook

Les fonctions suivantes gèrent un évènement métier

pullRequestOpenedWebhook,
pullRequestSynchronizeWebhook,
pushOnDefaultBranchWebhook,

Et celles-ci sont utilisées poar les précédentes

addMessageToPullRequest
getMessage
getMessageTemplate

Donc avec du recul: le fichier github.js contient:

  • du code d'aiguillage des évènements Github processWebhook: c'est bien dans son scope de controlleur github
  • du code qui déclenche des actions suite à ces événements, par exemple appel Scalingo, avec un mapping 1:1 sur une évènement Github, ex: pullRequestOpenedWebhook: je pense que sa place est dans un autre fichier
  • du code utilisé par les précédents: leur place est avec les précédents.

Da ma vision:

  • 1 fichier controller github - 1 export
  • 1 fichier avec leur actions métier - 1 export par action métier

Ces deux fichiers sont testés en unitaire SANS exporter des fonctions utilisées par d'autres fonctions dans le même fichier et pas ailleurs. Cers fonctions sont des détails d'implémentation. Si on veut les tester parce qu'elles contiennent trop de code, c'est l'indice qu'elles ont droit à une chambre à elles = un fichier séparé

Originally posted by @octo-topi in #296 (review)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant