namespace :deploy do

desc "Runs test before deploying, and don't deploy unless they pass"
task :run_tests do
  test_log = "log/capistrano.test.log"
  tests = fetch(:tests)
  if tests&.any?
    tests.each do |test|
      puts "--> Running tests: '#{test}', please wait ..."
      unless system "bundle exec rspec #{test} > #{test_log} 2>&1"
        puts "--> Tests: '#{test}' failed. Results in: #{test_log} and below:"
        system "cat #{test_log}"
        exit;
      end
      puts "--> '#{test}' passed"
    end
    puts "--> All tests passed"
    system "rm #{test_log}"
  end
end

end