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+) qui doit renouveller sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary|
44 paid_on = Time.new(now.year - 1, now.month, now.day).to_date + days_before_anniversary.to_i
46 create_new_member(name, joined_on, paid_on)
49 Given /^une nouvelle adhésion de (\w+)$/ do |name|
50 joined_on = Time.now.strftime('%Y-%m-%d')
51 create_new_member(name, joined_on, joined_on)
54 Given /^une nouvelle adhésion de (\w+) qui a payé sa cotisation il y a (\d+) jours$/ do |name, days|
55 joined_on = (Time.now.to_date - days.to_i).strftime('%Y-%m-%d')
56 create_new_member(name, joined_on, joined_on)
60 Given /^elle avait déjà reçu des appels l'année précédente$/ do
61 Timecop.travel(Time.now.to_date - 375) do
62 NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
66 Given /^qui a déjà reçu un appel (\d+) jours plus tôt$/ do |days_ago|
67 Timecop.travel(Time.now.to_date - days_ago.to_i) do
68 NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member))
72 When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
73 @file = member_filename_for_id(new_id)
74 write_file @file, render_member_file(EXTRA_MEMBER)
77 When /^j'ajoute une fiche vide$/ do
78 @file = member_filename_for_id(new_id)
82 When /^j'ajoute une fiche sans YAML$/ do
83 @file = member_filename_for_id(new_id)
84 write_file @file, <<-EOF.gsub(/^ /, '')
85 Ceci est une fiche sans YAML.
89 When /^j'ajoute une fiche avec du mauvais YAML$/ do
90 @file = member_filename_for_id(new_id)
91 write_file @file, <<-EOF.gsub(/^ /, '')
93 [This is missing a closing bracket
98 When /^j'ajoute une fiche sans email$/ do
99 @file = member_filename_for_id(new_id)
100 write_file @file, <<-EOF.gsub(/^ /, '')
106 joined_on: 2013-02-20
107 membership_fee_paid_on: 2013-02-20
112 When /^j'ajoute une fiche sans nom$/ do
113 @file = member_filename_for_id(new_id)
114 write_file @file, <<-EOF.gsub(/^ /, '')
116 email: joe@example.org
120 joined_on: 2013-02-20
121 membership_fee_paid_on: 2013-02-20
126 When /^j'ajoute une fiche avec comme date d'adhésion "([^"]*)"$/ do |date|
127 @file = member_filename_for_id(new_id)
128 write_file @file, <<-EOF.gsub(/^ /, '')
131 email: joe@example.org
136 membership_fee_paid_on: 2013-04-04
141 When /^j'ajoute une fiche avec comme date de cotisation "([^"]*)"$/ do |date|
142 @file = member_filename_for_id(new_id)
143 write_file @file, <<-EOF.gsub(/^ /, '')
146 email: joe@example.org
150 joined_on: 2013-04-04
151 membership_fee_paid_on: #{date}
156 When /^je supprime le nom sur une fiche existante$/ do
157 @file = member_filename_for_id(1)
158 run_simple "sed -e '/^name:/d' -i #{@file}"
161 When /^j'ajoute un fichier hors de la base des adhérents$/ do
163 write_file @file, 'Test content.'