Lorsque j'exécute send-membership-reminders
Alors aucun email ne doit avoir été envoyé
+ Scénario: Renouvellement de la cotisation avant la date anniversaire
+ Soit une base avec Christian qui a adhéré le 2013-04-22 et payé sa dernière cotisation le 2014-03-24
+ Lorsque j'exécute send-membership-reminders le 2014-04-12
+ Alors aucun email ne doit avoir été envoyé
+
Scénario: Script pas exécuté tous les jours
Soit une base avec Jane qui doit renouveler sa cotisation d'ici 9 jours
Et qui a déjà reçu un appel 21 jours plus tôt
NosOignons.send_membership_reminders!
end
+When /^(?:que )?j'exécute send-membership-reminders le ([0-9]{4})-([0-9]{2})-([0-9]{2})$/ do |year, month, day|
+ Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do
+ NosOignons.send_membership_reminders!
+ end
+end
+
When /^j'exécute send\-member\-emails\-to\-advisors$/ do
NosOignons.send_member_emails_to_advisors!
end
def send_membership_reminders!
today = Time.now.to_date
NosOignons::Member.all.select(&:up_to_date?).each do |member|
+ reminders = NosOignons::Reminder.all.sort_by(&:days)
anniversary = Time.new(today.year, member.joined_on.month,
member.joined_on.day).to_date
- next if member.membership_fee_paid_on >= anniversary
- reminders = NosOignons::Reminder.all.sort_by(&:days)
+ next if member.membership_fee_paid_on >= anniversary - reminders.last.days
reminders.each do |reminder|
next if (anniversary - today).to_i > reminder.days
next if member.reminded_on && (anniversary - member.reminded_on).to_i <= reminder.days