From: Lunar Date: Sat, 1 Jun 2013 11:02:16 +0000 (+0200) Subject: Continue implementing list-emails X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/commitdiff_plain/febcaa4d9fbe691c63473c2129788c0dbbe5cce0 Continue implementing list-emails --- diff --git a/bin/list-emails b/bin/list-emails index 569571e..4c8a286 100755 --- a/bin/list-emails +++ b/bin/list-emails @@ -8,6 +8,10 @@ Bundler.setup require 'nos_oignons/subscriptions' subscriptions = read_subscriptions +now = Time.now +last_year = Time.new(now.year - 1, now.month, now.day).to_date subscriptions.each_pair do |subscription_id, data| - puts data['email'] + if data['membership_fee_paid_on'] && last_year < data['membership_fee_paid_on'] + puts data['email'] + end end diff --git a/features/list-emails.feature b/features/list-emails.feature index 27c2a9e..161600f 100644 --- a/features/list-emails.feature +++ b/features/list-emails.feature @@ -8,7 +8,7 @@ Fonctionnalité: obtenir les emails des membres à jour de cotisations Scénario: Aucun membre enregistré Soit une base de membres vide Lorsque j'exécute list-emails - Alors la sortie doit-être vide + Alors la sortie doit être vide Scénario: Un membre à jour de cotisation Soit une base avec Pierre, à jour de cotisation @@ -19,7 +19,7 @@ Fonctionnalité: obtenir les emails des membres à jour de cotisations """ Scénario: Un ancien membre - Soit une base avec Pierre, qui n'a pas payé sa cotisation cette année + Soit une base avec Pierre qui n'a pas payé sa cotisation cette année Lorsque j'exécute list-emails Alors la sortie doit être vide @@ -36,7 +36,7 @@ Fonctionnalité: obtenir les emails des membres à jour de cotisations """ Scénario: Des membres à jour et d'autres pas - Soit une base avec Pierre, qui n'a pas payé sa cotisation cette année + Soit une base avec Pierre qui n'a pas payé sa cotisation cette année Et avec Jane, à jour de cotisation Et avec Fatima, à jour de cotisation Lorsque j'exécute list-emails diff --git a/features/step_definitions/commands.rb b/features/step_definitions/commands.rb index ce9c5da..54bc747 100644 --- a/features/step_definitions/commands.rb +++ b/features/step_definitions/commands.rb @@ -10,8 +10,8 @@ Then /^je dois voir comme erreur "(.*?)"$/ do |expected| assert_failing_with(expected) end -Then /^la sortie doit-être vide$/ do - expect(all_output).to be_empty +Then /^la sortie doit être vide$/ do + assert_exact_output('', all_stdout) end Then /^la sortie doit être:$/ do |expected| diff --git a/features/step_definitions/subscriptions.rb b/features/step_definitions/subscriptions.rb index 62306e9..571a2c2 100644 --- a/features/step_definitions/subscriptions.rb +++ b/features/step_definitions/subscriptions.rb @@ -1,14 +1,22 @@ +#-*- coding: utf-8 -*- + Given /une base de membres vide$/ do create_dir 'Membres' end -Given /^une base avec (\w+), à jour de cotisation$/ do |name| +Given /^une base avec (\w+)(, à jour de cotisation| qui n'a pas payé sa cotisation cette année)$/ do |name, uptodate| + case uptodate + when ', à jour de cotisation' + # ± 1 month ago + paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d') + else + # ± 15 months ago + paid_on = (Time.now - 3600*24*30*15).strftime('%Y-%m-%d') + end data = { 'name' => name, 'address' => "At #{name}", 'email' => "#{name.downcase}@example.org", - 'membership_fee_paid_on' => - # one month ago - (Time.now - 3600*24*30).strftime('%Y-%m-%d') + 'membership_fee_paid_on' => paid_on } create_dir 'Membres' file = subscription_filename_for_id(new_id) diff --git a/features/support/env.rb b/features/support/env.rb index e647e2f..afaec33 100644 --- a/features/support/env.rb +++ b/features/support/env.rb @@ -13,6 +13,7 @@ Before do ENV['GIT_COMMITTER_EMAIL'] = ENV['GIT_AUTHOR_EMAIL'] = 'test@example.org' @tmpdir = Dir.mktmpdir('gestion-adh') @dirs = [@tmpdir] + @aruba_io_wait_seconds = 0.5 end After do