4 @member_db_path = File.join(current_dir, NosOignons::MEMBERS_DB_DIR)
5 ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = current_dir
6 create_dir @member_db_path
9 def create_new_member(name, joined_on, paid_on)
10 @last_member = { 'name' => name,
11 'address' => "At #{name}",
12 'email' => "#{name.downcase}@example.org",
13 'joined_on' => joined_on,
14 'membership_fee_paid_on' => paid_on
16 init_db unless @member_db_path
17 file = member_filename_for_id(new_id)
18 write_file file, render_member_file(@last_member)
21 Given /une base de membres vide$/ do
25 Given /^(?:une base )?avec (\w+)(, à jour de cotisation| qui n'a pas payé sa cotisation cette année)$/ do |name, uptodate|
27 joined_on = (Time.now - 3600*24*30*15).strftime('%Y-%m-%d')
29 when ', à jour de cotisation'
31 paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
35 create_new_member(name, joined_on, paid_on)
38 Given /^une base avec (\w+) qui a adhéré le ([0-9-]+) et payé sa dernière cotisation le ([0-9-]+)$/ do |name, joined_on, paid_on|
39 create_new_member(name, joined_on, paid_on)
42 Given /^une base avec (\w+), membre (\w+), ayant cotisé le ([0-9-]+)$/ do |name, member_id, paid_on|
43 create_new_member(name, paid_on, paid_on)
44 expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name)
47 Given /^une base avec (\w+), membre (\w+), n'ayant jamais cotisé$/ do |name, member_id|
48 joined_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
49 create_new_member(name, joined_on, nil)
50 expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name)
53 Given /^une base avec uniquement (\w+), membre (\w+)$/ do |name, member_id|
54 paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
55 create_new_member(name, paid_on, paid_on)
56 member_path = File.join(current_dir, member_filename_for_id(member_id))
57 expect(File.read(member_path)).to include(name)
58 expect(Dir.glob("#{@member_db_path}/[0-9]*")).to have(1).member
62 Given /^(?:une base )?avec (\w+) qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
64 paid_on = Time.new(now.year - 1, now.month, now.day).to_date + days_before_anniversary.to_i
66 create_new_member(name, joined_on, paid_on)
69 Given /^une nouvelle adhésion de (\w+)$/ do |name|
70 joined_on = Time.now.strftime('%Y-%m-%d')
71 create_new_member(name, joined_on, joined_on)
74 Given /^une nouvelle adhésion de (\w+) qui a payé sa cotisation il y a (\d+) jours$/ do |name, days|
75 joined_on = (Time.now.to_date - days.to_i).strftime('%Y-%m-%d')
76 create_new_member(name, joined_on, joined_on)
80 Given /^elle avait déjà reçu des appels l'année précédente$/ do
81 Timecop.travel(Time.now.to_date - 375) do
82 NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
86 Given /^qui a déjà reçu un appel (\d+) jours plus tôt$/ do |days_ago|
87 Timecop.travel(Time.now.to_date - days_ago.to_i) do
88 NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
92 When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
93 @file = member_filename_for_id(new_id)
94 write_file @file, render_member_file(EXTRA_MEMBER)
97 When /^j'ajoute une fiche vide$/ do
98 @file = member_filename_for_id(new_id)
102 When /^j'ajoute une fiche sans YAML$/ do
103 @file = member_filename_for_id(new_id)
104 write_file @file, <<-EOF.gsub(/^ /, '')
105 Ceci est une fiche sans YAML.
109 When /^j'ajoute une fiche avec du mauvais YAML$/ do
110 @file = member_filename_for_id(new_id)
111 write_file @file, <<-EOF.gsub(/^ /, '')
113 [This is missing a closing bracket
118 When /^j'ajoute une fiche sans email$/ do
119 @file = member_filename_for_id(new_id)
120 write_file @file, <<-EOF.gsub(/^ /, '')
126 joined_on: 2013-02-20
127 membership_fee_paid_on: 2013-02-20
132 When /^j'ajoute une fiche sans nom$/ do
133 @file = member_filename_for_id(new_id)
134 write_file @file, <<-EOF.gsub(/^ /, '')
136 email: joe@example.org
140 joined_on: 2013-02-20
141 membership_fee_paid_on: 2013-02-20
146 When /^j'ajoute une fiche avec comme date d'adhésion "([^"]*)"$/ do |date|
147 @file = member_filename_for_id(new_id)
148 write_file @file, <<-EOF.gsub(/^ /, '')
151 email: joe@example.org
156 membership_fee_paid_on: 2013-04-04
161 When /^j'ajoute une fiche avec comme date de cotisation "([^"]*)"$/ do |date|
162 @file = member_filename_for_id(new_id)
163 write_file @file, <<-EOF.gsub(/^ /, '')
166 email: joe@example.org
170 joined_on: 2013-04-04
171 membership_fee_paid_on: #{date}
176 When /^je supprime le nom sur une fiche existante$/ do
177 @file = member_filename_for_id(1)
178 run_simple "sed -e '/^name:/d' -i #{@file}"
181 When /^j'ajoute un fichier hors de la base des adhérents$/ do
183 write_file @file, 'Test content.'