Sha256: 5c687d592bbea23ef73277f6abd07676f3b7a0857fd7180ab2ad689954401766

Contents?: true

Size: 1.32 KB

Versions: 5

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'

RSpec.describe Slack::RealTime::Socket do
  context 'with url' do
    let(:url) { 'wss://ms174.slack-msgs.com/websocket/xyz' }
    let(:socket) { Slack::RealTime::Socket.new(url, ping: 42) }
    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('@ws')).to eq ws
      end
      it 'pings every 30s' do
        expect(Faye::WebSocket::Client).to receive(:new).with(url, nil, ping: 42).and_return(ws)
        socket.connect!
      end
    end
    describe '#disconnect!' do
      it 'closes and nils the websocket' do
        socket.instance_variable_set('@ws', 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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
slack-ruby-client-0.4.0 spec/slack/real_time/socket_spec.rb
slack-ruby-client-0.3.1 spec/slack/real_time/socket_spec.rb
slack-ruby-client-0.3.0 spec/slack/real_time/socket_spec.rb
slack-ruby-client-0.2.1 spec/slack/real_time/socket_spec.rb
slack-ruby-client-0.2.0 spec/slack/real_time/socket_spec.rb