describe PingController, type: :controller do describe 'GET #index' do subject { get :index } it { expect(subject.status).to eq 200 } context 'when base is un-plug' do before do allow(ActiveRecord::Base).to receive(:connected?).and_raise(ActiveRecord::ConnectionTimeoutError) end it { expect { subject }.to raise_error(ActiveRecord::ConnectionTimeoutError) } end context 'when a maintenance file is present' do let(:filepath) { Rails.root.join('maintenance') } before do filepath.write("") end after do filepath.delete end it 'tells HAProxy that the app is in maintenance, but will be available again soon' do expect(subject.status).to eq 404 end end end end