]> nos-oignons.net Git - gestion-adh.git/blob - features/step_definitions/commands.rb
622a44b235ab7e56ab10812a080623f078c73f07
[gestion-adh.git] / features / step_definitions / commands.rb
1 #-*- coding: utf-8 -*-
2 #
3 # Système de gestion des adhésions de Nos oignons
4 # Copyright © 2013-2014 Nos oignons <contact@nos-oignons.net>
5 #
6 # This program is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU Affero General Public License as
8 # published by the Free Software Foundation, either version 3 of the
9 # License, or (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU Affero General Public License for more details.
15 #
16 # You should have received a copy of the GNU Affero General Public License
17 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
18
19 When /^j'exécute list\-emails$/ do
20   run_simple 'list-emails'
21 end
22
23 When /^j'exécute list-emails le (\d+)\-(\d+)\-(\d+)$/ do |year, month, day|$/
24   Timecop.travel(Time.new(year, month, day)) do
25     stdout_io = StringIO.new
26     begin
27       $stdout = stdout_io
28       NosOignons.list_emails!
29       @stdout = stdout_io.string
30     ensure
31       $stdout = STDOUT
32     end
33   end
34 end
35
36 When /^j'exécute update-ag-subscribers$/ do
37   NosOignons.update_ag_subscribers!
38 end
39
40 When /^(?:que )?j'exécute send-membership-reminders$/ do
41   NosOignons.send_membership_reminders!
42 end
43
44 When /^(?:que )?j'exécute send-membership-reminders le ([0-9]{4})-([0-9]{2})-([0-9]{2})$/ do |year, month, day|
45   Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do
46     NosOignons.send_membership_reminders!
47   end
48 end
49
50 When /^j'exécute send\-member\-emails\-to\-advisors$/ do
51   NosOignons.send_member_emails_to_advisors!
52 end
53
54 When /^j'exécute `create\-membership\-fee\-receipt ([0-9]+) ([0-9,]+)` le ([0-9]{4})-([0-9]{2})-([0-9]{2})$/ do |member, amount, year, month, day|
55   Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do
56     NosOignons.create_membership_fee_receipt!(member, amount)
57   end
58 end
59
60 When /^j'exécute `(create\-membership\-fee\-receipt.*)`$/ do |cmd|
61   run_simple cmd, :fail_on_error => false
62 end
63
64 Then /^je ne dois pas avoir eu d'erreur$/ do
65   expect(last_command_started).to have_exit_status(0)
66 end
67
68 Then /^je dois voir comme erreur "(.*?)"$/ do |expected|
69   expect(last_command_started).to have_output_on_stderr /#{Regexp.escape(expected)}/
70 end
71
72 Then /^la sortie doit être vide$/ do
73   expect(last_command_started).to have_output_on_stdout('')
74 end
75
76 Then /^la sortie doit être:$/ do |expected|
77   # add an extra line feed for nice scenario
78   expect(last_command_started).to have_output_on_stdout(expected)
79 end
80
81 Then /^la sortie doit être "([^"]*)"$/ do |expected|
82   begin
83     expect(last_command_started).to have_output_on_stdout(expected)
84   rescue Aruba::NoCommandHasBeenStartedError
85     expect(@stdout.rstrip).to eq(expected)
86   end
87 end