]> nos-oignons.net Git - gestion-adh.git/blob - features/step_definitions/members.rb
Add join date, fix renewal logic and add ability to specify path to wiki-ca
[gestion-adh.git] / features / step_definitions / members.rb
1 #-*- coding: utf-8 -*-
2
3 def init_db
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
7 end
8
9 def create_new_member(name, joined_on, paid_on)
10   data = { 'name' => name,
11            'address' => "At #{name}",
12            'email' => "#{name.downcase}@example.org",
13            'joined_on' => joined_on,
14            'membership_fee_paid_on' => paid_on
15          }
16   init_db unless @member_db_path
17   file = member_filename_for_id(new_id)
18   write_file file, render_member_file(data)
19 end
20
21 Given /une base de membres vide$/ do
22   init_db
23 end
24
25 Given /^(?:une base )?avec (\w+)(, à jour de cotisation| qui n'a pas payé sa cotisation cette année)$/ do |name, uptodate|
26   # ± 15 months ago
27   joined_on = (Time.now - 3600*24*30*15).strftime('%Y-%m-%d')
28   case uptodate
29   when ', à jour de cotisation'
30     # 30 days ago
31     paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d')
32   else
33     paid_on = joined_on
34   end
35   create_new_member(name, joined_on, paid_on)
36 end
37
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)
40 end
41
42 Given /^une nouvelle adhésion de (\w+)$/ do |name|
43   joined_on = Time.now.strftime('%Y-%m-%d')
44   create_new_member(name, joined_on, joined_on)
45 end
46
47 When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do
48   @file = member_filename_for_id(new_id)
49   write_file @file, render_member_file(EXTRA_MEMBER)
50 end
51
52 When /^j'ajoute une fiche vide$/ do
53   @file = member_filename_for_id(new_id)
54   write_file @file, ''
55 end
56
57 When /^j'ajoute une fiche sans YAML$/ do
58   @file = member_filename_for_id(new_id)
59   write_file @file, <<-EOF.gsub(/^    /, '')
60     Ceci est une fiche sans YAML.
61   EOF
62 end
63
64 When /^j'ajoute une fiche avec du mauvais YAML$/ do
65   @file = member_filename_for_id(new_id)
66   write_file @file, <<-EOF.gsub(/^    /, '')
67     ---
68     [This is missing a closing bracket
69     ---
70   EOF
71 end
72
73 When /^j'ajoute une fiche sans email$/ do
74   @file = member_filename_for_id(new_id)
75   write_file @file, <<-EOF.gsub(/^    /, '')
76     ---
77     name: J. Example
78     address: |
79       21 Jump Street
80       42000 Synthé
81     joined_on: 2013-02-20
82     membership_fee_paid_on: 2013-02-20
83     ---
84   EOF
85 end
86
87 When /^j'ajoute une fiche sans nom$/ do
88   @file = member_filename_for_id(new_id)
89   write_file @file, <<-EOF.gsub(/^    /, '')
90     ---
91     email: joe@example.org
92     address: |
93       21 Jump Street
94       42000 Synthé
95     joined_on: 2013-02-20
96     membership_fee_paid_on: 2013-02-20
97     ---
98   EOF
99 end
100
101 When /^j'ajoute une fiche avec comme date d'adhésion "([^"]*)"$/ do |date|
102   @file = member_filename_for_id(new_id)
103   write_file @file, <<-EOF.gsub(/^    /, '')
104     ---
105     name: J. Example
106     email: joe@example.org
107     address: |
108       21 Jump Street
109       42000 Synthé
110     joined_on: #{date}
111     membership_fee_paid_on: 2013-04-04
112     ---
113   EOF
114 end
115
116 When /^j'ajoute une fiche avec comme date de cotisation "([^"]*)"$/ do |date|
117   @file = member_filename_for_id(new_id)
118   write_file @file, <<-EOF.gsub(/^    /, '')
119     ---
120     name: J. Example
121     email: joe@example.org
122     address: |
123       21 Jump Street
124       42000 Synthé
125     joined_on: 2013-04-04
126     membership_fee_paid_on: #{date}
127     ---
128   EOF
129 end
130
131 When /^je supprime le nom sur une fiche existante$/ do
132   @file = member_filename_for_id(1)
133   run_simple "sed -e '/^name:/d' -i #{@file}"
134 end
135
136 When /^j'ajoute un fichier hors de la base des adhérents$/ do
137   @file = 'test'
138   write_file @file, 'Test content.'
139 end