From 41e506595f4d41915f59f93e1f11c926cc3bfae1 Mon Sep 17 00:00:00 2001 From: Lunar Date: Fri, 31 May 2013 22:56:29 +0200 Subject: [PATCH] Next step in pre-commit hook implementation --- bin/pre-commit-hook | 9 ++++++--- features/pre-commit-hook.feature | 5 +++++ features/step_definitions/subscriptions.rb | 13 +++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/bin/pre-commit-hook b/bin/pre-commit-hook index 7d3d0e8..fcfb3e9 100755 --- a/bin/pre-commit-hook +++ b/bin/pre-commit-hook @@ -19,12 +19,15 @@ def is_valid_subscription?(content) return false if content.length == 0 return false unless content.start_with?("---\n") begin - YAML.load(content) - true + data = YAML.load(content) rescue ArgumentError # Parse error - false + return false end + ['name', 'email'].each do |key| + return false unless data.include?(key) + end + true end def is_valid_subscription_file?(file) diff --git a/features/pre-commit-hook.feature b/features/pre-commit-hook.feature index 1765ffb..c388308 100644 --- a/features/pre-commit-hook.feature +++ b/features/pre-commit-hook.feature @@ -29,3 +29,8 @@ Fonctionnalité: pre-commit hook Git 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" + + Scénario: Commit d'une fiche sans email + Lorsque j'ajoute une fiche sans email + 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 50f3dbb..2c07a72 100644 --- a/features/step_definitions/subscriptions.rb +++ b/features/step_definitions/subscriptions.rb @@ -23,3 +23,16 @@ When /^j'ajoute une fiche avec du mauvais YAML$/ do --- EOF end + +When /^j'ajoute une fiche sans email$/ do + @file = subscription_filename_for_id(new_id) + write_file @file, <<-EOF.gsub(/^ /, '') + --- + name: J. Example + address: | + 21 Jump Street + 42000 Synthé + membership_fee_paid_on: 2013-02-20 + --- + EOF +end -- 2.39.2