Sha256: 0752ceb11d5a0e3e56296532dc6567ca3f121af21617ae1510b228ffb8ed5971

Contents?: true

Size: 1.54 KB

Versions: 7

Compression:

Stored size: 1.54 KB

Contents

require 'spec_helper'

begin
  RSpec.describe Slack::RealTime::Concurrency::Eventmachine::Socket do
    context 'with url' do
      let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
      let(:logger) { ::Logger.new($stdout) }
      let(:socket) { described_class.new(url, ping: 42, logger: logger) }
      let(:ws) { double(Faye::WebSocket::Client) }
      describe '#initialize' do
        it 'sets url' do
          expect(socket.url).to eq url
        end
      end
      describe '#connect!' do
        before do
          allow(ws).to receive(:on).with(:close)
        end
        it 'connects' do
          allow(Faye::WebSocket::Client).to receive(:new).and_return(ws)
          socket.connect!
          expect(socket.instance_variable_get('@driver')).to eq ws
        end
        it 'pings every 30s' do
          expect(Faye::WebSocket::Client).to receive(:new).with(url, nil, ping: 42, logger: logger).and_return(ws)
          socket.connect!
        end
      end
      describe '#disconnect!' do
        it 'closes and nils the websocket' do
          socket.instance_variable_set('@driver', ws)
          expect(ws).to receive(:close)
          socket.disconnect!
        end
      end
      describe 'send_data' do
        before do
          allow(Faye::WebSocket::Client).to receive(:new).and_return(ws)
          allow(ws).to receive(:on)
          socket.connect!
        end
        it 'sends data' do
          expect(ws).to receive(:send).with('data')
          socket.send_data('data')
        end
      end
    end
  end
rescue LoadError
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
slack-ruby-client-0.7.6 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.5 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.4 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.3 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.2 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.1 spec/slack/real_time/concurrency/eventmachine_spec.rb
slack-ruby-client-0.7.0 spec/slack/real_time/concurrency/eventmachine_spec.rb