|
|
- require 'spec_helper'
-
- describe SlackRubyBot::App do
- def app
- SlackRubyBot::App.new
- end
- it_behaves_like 'a slack ruby bot'
- context 'retries on rtm.start errors' do
- let(:client) { Slack::RealTime::Client.new }
- let(:logger) { subject.send :logger }
- before do
- allow(subject).to receive(:sleep)
- expect(Slack::RealTime::Client).to receive(:new).twice.and_return(client)
- expect(logger).to receive(:error).twice
- end
- it 'migration_in_progress', vcr: { cassette_name: 'migration_in_progress' } do
- expect do
- subject.send :start!
- end.to raise_error Slack::Web::Api::Error, 'unknown'
- end
- [Faraday::Error::ConnectionFailed, Faraday::Error::TimeoutError, Faraday::Error::SSLError].each do |err|
- it "#{err}" do
- expect(client).to receive(:start!) { fail err, 'Faraday' }
- expect(client).to receive(:start!) { fail 'unknown' }
- expect do
- subject.send :start!
- end.to raise_error 'unknown'
- end
- end
- end
- end
|