]> nos-oignons.net Git - gestion-adh.git/blobdiff - features/step_definitions/members.rb
Implement send-membership-reminders
[gestion-adh.git] / features / step_definitions / members.rb
index 5bcc39c1bde36dc0c965cee9f8801df6a8eabb04..6e84484178f47f3dec2e53071adbe6917f157da9 100644 (file)
@@ -7,15 +7,15 @@ def init_db
 end
 
 def create_new_member(name, joined_on, paid_on)
-  data = { 'name' => name,
-           'address' => "At #{name}",
-           'email' => "#{name.downcase}@example.org",
-           'joined_on' => joined_on,
-           'membership_fee_paid_on' => paid_on
+  @last_member = { 'name' => name,
+                   'address' => "At #{name}",
+                   'email' => "#{name.downcase}@example.org",
+                   'joined_on' => joined_on,
+                   'membership_fee_paid_on' => paid_on
          }
   init_db unless @member_db_path
   file = member_filename_for_id(new_id)
-  write_file file, render_member_file(data)
+  write_file file, render_member_file(@last_member)
 end
 
 Given /une base de membres vide$/ do
@@ -39,11 +39,23 @@ Given /^une base avec (\w+) qui a adhéré le ([0-9-]+) et payé sa dernière co
   create_new_member(name, joined_on, paid_on)
 end
 
+Given /^(?:une base )?avec (\w+) qui doit renouveller sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
+  paid_on = Time.now.to_date - days_before_anniversary.to_i
+  joined_on = paid_on
+  create_new_member(name, joined_on, paid_on)
+end
+
 Given /^une nouvelle adhésion de (\w+)$/ do |name|
   joined_on = Time.now.strftime('%Y-%m-%d')
   create_new_member(name, joined_on, joined_on)
 end
 
+Given /^elle avait déjà reçu des appels l'année précédente$/ do
+  Timecop.travel(Time.now.to_date - 375) do
+    NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
+  end
+end
+
 When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
   @file = member_filename_for_id(new_id)
   write_file @file, render_member_file(EXTRA_MEMBER)