+#-*- coding: utf-8 -*-
+
When /^j'exécute list\-emails$/ do
run_simple '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'
+end
+
+When /^(?:que )?j'exécute send-membership-reminders$/ do
+ NosOignons.send_membership_reminders!
+end
+
+When /^j'exécute send\-member\-emails\-to\-advisors$/ do
+ NosOignons.send_member_emails_to_advisors!
+end
+
Then /^je ne dois pas avoir eu d'erreur$/ do
assert_exit_status(0)
end
assert_failing_with(expected)
end
-Then /^la sortie doit-être vide$/ do
- expect(all_output).to be_empty
+Then /^la sortie doit être vide$/ do
+ assert_exact_output('', @stdout || all_stdout)
+end
+
+Then /^la sortie doit être:$/ do |expected|
+ # add an extra line feed for nice scenario
+ assert_exact_output(expected + "\n", @stdout || all_stdout)
+end
+
+Then /^la sortie doit être "([^"]*)"$/ do |expected|
+ assert_exact_output(expected, (@stdout || all_stdout).rstrip)
end