From: Lunar Date: Fri, 31 May 2013 20:44:47 +0000 (+0200) Subject: Next step in pre-commit hook implementation X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/commitdiff_plain/e4000b47cf37576b44d21dc088601d619a6e5261 Next step in pre-commit hook implementation --- diff --git a/bin/pre-commit-hook b/bin/pre-commit-hook index 713cb6f..7d3d0e8 100755 --- a/bin/pre-commit-hook +++ b/bin/pre-commit-hook @@ -16,9 +16,15 @@ else end def is_valid_subscription?(content) - content.length != 0 && - content.start_with?("---\n") && + return false if content.length == 0 + return false unless content.start_with?("---\n") + begin YAML.load(content) + true + rescue ArgumentError + # Parse error + false + end end def is_valid_subscription_file?(file) diff --git a/features/pre-commit-hook.feature b/features/pre-commit-hook.feature index dff8a4b..1765ffb 100644 --- a/features/pre-commit-hook.feature +++ b/features/pre-commit-hook.feature @@ -24,3 +24,8 @@ Fonctionnalité: pre-commit hook Git Lorsque j'ajoute une fiche sans YAML Et que je fais un `commit` du nouveau fichier Alors je dois voir comme erreur "pas le bon format" + + Scénario: Commit d'un fichier avec du mauvais YAML + Lorsque j'ajoute une fiche avec du mauvais YAML + Et que je fais un `commit` du nouveau fichier + Alors je dois voir comme erreur "pas le bon format" diff --git a/features/step_definitions/subscriptions.rb b/features/step_definitions/subscriptions.rb index 8d3a754..50f3dbb 100644 --- a/features/step_definitions/subscriptions.rb +++ b/features/step_definitions/subscriptions.rb @@ -14,3 +14,12 @@ When /^j'ajoute une fiche sans YAML$/ do Ceci est une fiche sans YAML. EOF end + +When /^j'ajoute une fiche avec du mauvais YAML$/ do + @file = subscription_filename_for_id(new_id) + write_file @file, <<-EOF.gsub(/^ /, '') + --- + [This is missing a closing bracket + --- + EOF +end