X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/blobdiff_plain/9d982cb5d7f9abe598c8df3eefabe10501056110..1b0904a0bec21ec31a2197e017581682059e1ad1:/features/step_definitions/members.rb diff --git a/features/step_definitions/members.rb b/features/step_definitions/members.rb index 6e84484..4b8ab66 100644 --- a/features/step_definitions/members.rb +++ b/features/step_definitions/members.rb @@ -39,8 +39,29 @@ Given /^une base avec (\w+) qui a adhéré le ([0-9-]+) et payé sa dernière co create_new_member(name, joined_on, paid_on) end -Given /^(?:une base )?avec (\w+) qui doit renouveller sa cotisation d'ici (\d+) jours$/ do |name, days_before_anniversary| - paid_on = Time.now.to_date - days_before_anniversary.to_i +Given /^une base avec (\w+), membre (\w+), ayant cotisé le ([0-9-]+)$/ do |name, member_id, paid_on| + create_new_member(name, paid_on, paid_on) + expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name) +end + +Given /^une base avec (\w+), membre (\w+), n'ayant jamais cotisé$/ do |name, member_id| + joined_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d') + create_new_member(name, joined_on, nil) + expect(File.read(File.join(current_dir, member_filename_for_id(member_id)))).to include(name) +end + +Given /^une base avec uniquement (\w+), membre (\w+)$/ do |name, member_id| + paid_on = (Time.now - 3600*24*30).strftime('%Y-%m-%d') + create_new_member(name, paid_on, paid_on) + member_path = File.join(current_dir, member_filename_for_id(member_id)) + expect(File.read(member_path)).to include(name) + expect(Dir.glob("#{@member_db_path}/[0-9]*")).to have(1).member +end + + +Given /^(?:une base )?avec (\w+) qui doit renouveler sa cotisation d'ici (\d+) jours$/ do |name, 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) end @@ -50,12 +71,24 @@ Given /^une nouvelle adhésion de (\w+)$/ do |name| create_new_member(name, joined_on, joined_on) end +Given /^une nouvelle adhésion de (\w+) qui a payé sa cotisation il y a (\d+) jours$/ do |name, days| + joined_on = (Time.now.to_date - days.to_i).strftime('%Y-%m-%d') + 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)) end end +Given /^qui a déjà reçu un appel (\d+) jours plus tôt$/ do |days_ago| + Timecop.travel(Time.now.to_date - days_ago.to_i) do + NosOignons::ReminderDb.instance.record(OpenStruct.new(@last_member)) + end +end + When /^j'ajoute une fiche correcte pour une nouvelle adhésion$/ do @file = member_filename_for_id(new_id) write_file @file, render_member_file(EXTRA_MEMBER)