X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/blobdiff_plain/4a99ae87e0f7fdd07d8820a724fbed1d8b2b5f36..5bd4880f2c15cc97cfde3b8714c5ad900f1f5f1b:/features/step_definitions/commands.rb diff --git a/features/step_definitions/commands.rb b/features/step_definitions/commands.rb index 685aa15..d4d7ab5 100644 --- a/features/step_definitions/commands.rb +++ b/features/step_definitions/commands.rb @@ -1,26 +1,87 @@ #-*- coding: utf-8 -*- +# +# Système de gestion des adhésions de Nos oignons +# Copyright © 2013-2014 Nos oignons +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . When /^j'exécute list\-emails$/ do - run_simple 'list-emails' + run_command_and_stop 'list-emails' +end + +When /^j'exécute list-emails le (\d+)\-(\d+)\-(\d+)$/ do |year, month, day|$/ + Timecop.travel(Time.new(year, month, day)) do + stdout_io = StringIO.new + begin + $stdout = stdout_io + NosOignons.list_emails! + @stdout = stdout_io.string + ensure + $stdout = STDOUT + end + end end When /^j'exécute update-ag-subscribers$/ do - run_simple 'update-ag-subscribers' + NosOignons.update_ag_subscribers! +end + +When /^(?:que )?j'exécute send-membership-reminders$/ do + NosOignons.send_membership_reminders! +end + +When /^(?:que )?j'exécute send-membership-reminders le ([0-9]{4})-([0-9]{2})-([0-9]{2})$/ do |year, month, day| + Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do + NosOignons.send_membership_reminders! + end +end + +When /^j'exécute send\-member\-emails\-to\-advisors$/ do + NosOignons.send_member_emails_to_advisors! +end + +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| + Timecop.travel(Date.new(year.to_i, month.to_i, day.to_i)) do + NosOignons.create_membership_fee_receipt!(member, amount) + end +end + +When /^j'exécute `(create\-membership\-fee\-receipt.*)`$/ do |cmd| + run_command_and_stop cmd, :fail_on_error => false end Then /^je ne dois pas avoir eu d'erreur$/ do - assert_exit_status(0) + expect(last_command_started).to have_exit_status(0) end Then /^je dois voir comme erreur "(.*?)"$/ do |expected| - assert_failing_with(expected) + expect(last_command_started).to have_output_on_stderr /#{Regexp.escape(expected)}/ end Then /^la sortie doit être vide$/ do - assert_exact_output('', all_stdout) + expect(last_command_started).to have_output_on_stdout('') end Then /^la sortie doit être:$/ do |expected| # add an extra line feed for nice scenario - assert_exact_output(expected + "\n", all_stdout) + expect(last_command_started).to have_output_on_stdout(expected) +end + +Then /^la sortie doit être "([^"]*)"$/ do |expected| + begin + expect(last_command_started).to have_output_on_stdout(expected) + rescue Aruba::NoCommandHasBeenStartedError + expect(@stdout.rstrip).to eq(expected) + end end