Et avec Moly qui doit renouveler sa cotisation d'ici 30 jours
Lorsque j'exécute send-membership-reminders
Alors des emails doivent avoir été envoyés à Jane, Fatima, Fred et Moly
+
+ Scénario: Envoi de l'appel avec une adresse postale
+ Soit une base avec Sophie ayant une adresse postale et qui doit renouveler sa cotisation d'ici 30 jours
+ Lorsque j'exécute send-membership-reminders
+ Alors l'appel pour la cotisation doit demander confirmation de l'adresse postale
+
+ Scénario: Envoi de l'appel sans adresse postale
+ Soit une base avec Sylvain qui n'a pas d'adresse postale et qui doit renouveler sa cotisation d'ici 30 jours
+ Lorsque j'exécute send-membership-reminders
+ Alors l'appel pour la cotisation ne doit pas parler de l'adresse postale
expect(Mail::TestMailer.deliveries.first.body).to include('fred@example.org')
end
+Then /^l'appel pour la cotisation doit demander confirmation de l'adresse postale$/ do
+ mail = Mail::TestMailer.deliveries.first
+ expect(mail.body).to include("vérifier que l'adresse postale")
+ expect(mail.body).to include(@last_member['address'])
+end
+
+
+Then /^l'appel pour la cotisation ne doit pas parler de l'adresse postale$/ do
+ mail = Mail::TestMailer.deliveries.first
+ expect(mail.body).to_not include("vérifier que l'adresse postale")
+end
+
ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = expand_path('.')
end
-def create_new_member(name, joined_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
- }
+def new_member_data(name, joined_on, paid_on)
+ { 'name' => name,
+ 'address' => "At #{name}",
+ 'email' => "#{name.downcase}@example.org",
+ 'joined_on' => joined_on,
+ 'membership_fee_paid_on' => paid_on
+ }
+end
+
+def add_member(member_data)
+ @last_member = member_data
init_db unless @member_db_path
file = member_filename_for_id(new_id)
File.write file, render_member_file(@last_member)
end
+def create_new_member(*args)
+ add_member(new_member_data(*args))
+end
+
Given /une base de membres vide$/ do
init_db
end
expect(Dir.glob("#{@member_db_path}/[0-9]*").size).to eq(1)
end
-
-Given /^(?:une base )?avec (\w+) qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
+Given /^(?:une base )?avec (\w+) (ayant une adresse postale et |qui n'a pas d'adresse postale et )?qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, address_status, days_before_anniversary|
now = Time.now
paid_on = Time.new(now.year - 1, now.month, now.day).to_date + days_before_anniversary.to_i
joined_on = paid_on
- create_new_member(name, joined_on, paid_on)
+ member_data = new_member_data(name, joined_on, paid_on)
+ case address_status
+ when /ayant/
+ member_data['address'] = "At #{name}'s"
+ when /qui n'a pas/
+ member_data.delete('address')
+ end
+ add_member(member_data)
end
Given /^une nouvelle adhésion de (\w+)$/ do |name|
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))
Il vient de `whois cogent.fr`.
000002:
name: Sylvain Dufier
- address: |
- ORANGE FRANCE
- 13, rue de Javel
- 75015 Paris
email: sylvain.dufier@orange-ftgroup.com
joined_on: 2013-05-20
membership_fee_paid_on: 2013-05-29
MEMBER_FILE_TEMPLATE = <<'END_OF_TEMPLATE'
---
name: <%= name %>
+<% unless address.nil? %>
address: |
<%= address.gsub(/^/, ' ').rstrip %>
+<% end %>
email: <%= email %>
joined_on: <%= joined_on %>
membership_fee_paid_on: <%= membership_fee_paid_on %>
comment faire, écrivez au conseil d'administration. Répondre à cet email
devrait faire l'affaire.
+ <% unless member.address.nil? %>
Au passage, est-ce que vous pourriez vérifier que l'adresse postale est
toujours bonne ? Voici celle que nous avons retenu :
Si ce n'est plus le cas, c'est chouette de le signaler.
+ <% end %>
Au plaisir de continuer l'aventure de Nos oignons avec vous,
--
Le robot du conseil d'administration