#-*- coding: utf-8 -*-
-Given /une base de membres vide$/ do
- create_dir 'Membres'
+def init_db
+ @member_db_path = File.join(current_dir, NosOignons::MEMBERS_DB_DIR)
+ ENV['NOS_OIGNONS_BOARD_WIKI_PATH'] = current_dir
+ create_dir @member_db_path
end
-Given /^(?:une base )?avec (\w+)(, à jour de cotisation| qui n'a pas payé sa cotisation cette année)$/ do |name, uptodate|
- case uptodate
- when ', à jour de cotisation'
- # ± 1 month ago
- paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
- else
- # ± 15 months ago
- paid_on = (Time.now - 3600*24*30*15).strftime('%Y-%m-%d')
- 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
}
- create_dir 'Membres'
+ init_db unless @member_db_path
file = member_filename_for_id(new_id)
write_file file, render_member_file(data)
end
+Given /une base de membres vide$/ do
+ init_db
+end
+
+Given /^(?:une base )?avec (\w+)(, à jour de cotisation| qui n'a pas payé sa cotisation cette année)$/ do |name, uptodate|
+ # ± 15 months ago
+ joined_on = (Time.now - 3600*24*30*15).strftime('%Y-%m-%d')
+ case uptodate
+ when ', à jour de cotisation'
+ # 30 days ago
+ paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
+ else
+ paid_on = joined_on
+ end
+ create_new_member(name, joined_on, paid_on)
+end
+
+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|
+ create_new_member(name, joined_on, paid_on)
+end
+
Given /^une nouvelle adhésion de (\w+)$/ do |name|
- data = { 'name' => name,
- 'address' => "At #{name}",
- 'email' => "#{name.downcase}@example.org",
- 'membership_fee_paid_on' => Time.now.strftime('%Y-%m-%d')
- }
- create_dir 'Membres'
- file = member_filename_for_id(new_id)
- write_file file, render_member_file(data)
+ joined_on = Time.now.strftime('%Y-%m-%d')
+ create_new_member(name, joined_on, joined_on)
end
When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
address: |
21 Jump Street
42000 Synthé
+ joined_on: 2013-02-20
membership_fee_paid_on: 2013-02-20
---
EOF
address: |
21 Jump Street
42000 Synthé
+ joined_on: 2013-02-20
membership_fee_paid_on: 2013-02-20
---
EOF
end
+When /^j'ajoute une fiche avec comme date d'adhésion "([^"]*)"$/ do |date|
+ @file = member_filename_for_id(new_id)
+ write_file @file, <<-EOF.gsub(/^ /, '')
+ ---
+ name: J. Example
+ email: joe@example.org
+ address: |
+ 21 Jump Street
+ 42000 Synthé
+ joined_on: #{date}
+ membership_fee_paid_on: 2013-04-04
+ ---
+ EOF
+end
+
When /^j'ajoute une fiche avec comme date de cotisation "([^"]*)"$/ do |date|
@file = member_filename_for_id(new_id)
write_file @file, <<-EOF.gsub(/^ /, '')
address: |
21 Jump Street
42000 Synthé
+ joined_on: 2013-04-04
membership_fee_paid_on: #{date}
---
EOF