From e4000b47cf37576b44d21dc088601d619a6e5261 Mon Sep 17 00:00:00 2001 From: Lunar Date: Fri, 31 May 2013 22:44:47 +0200 Subject: [PATCH] Next step in pre-commit hook implementation --- bin/pre-commit-hook | 10 ++++++++-- features/pre-commit-hook.feature | 5 +++++ features/step_definitions/subscriptions.rb | 9 +++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) 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 -- 2.39.2