require 'spec_helper' require 'net/smtp' RSpec.describe "sending email" do include Rack::Test::Methods def app RegistrationApp end context "with delivery error" do let(:band_params) { create_band_params } before :each do app.set :accept_registrations, { start: Date.today.iso8601, stop: (Date.today + 30).iso8601 } @mail_spy = spy("Mail") allow(Mail).to receive('new') { @mail_spy } allow(@mail_spy).to receive(:deliver!).and_raise(Net::SMTPFatalError.new("Some error message")) post '/submit', 'band' => band_params end it "goes back to the registration form" do expect(last_response.body).to match(/form id="registration-form"/) end it "shows what went wrong" do expect(last_response.body).to match(/Some error message/) end end end