spec/unit/realtime/client_spec.rb in ably-1.1.4.rc vs spec/unit/realtime/client_spec.rb in ably-1.1.4

- old
+ new

@@ -1,11 +1,11 @@ # encoding: utf-8 require 'spec_helper' require 'shared/client_initializer_behaviour' describe Ably::Realtime::Client do - subject do + subject(:realtime_client) do Ably::Realtime::Client.new(client_options) end it_behaves_like 'a client initializer' @@ -13,31 +13,44 @@ let(:client_options) { { key: 'appid.keyuid:keysecret', auto_connect: false } } it 'passes on the options to the initializer' do rest_client = instance_double('Ably::Rest::Client', auth: instance_double('Ably::Auth'), options: client_options, environment: 'production', use_tls?: true, custom_tls_port: nil) expect(Ably::Rest::Client).to receive(:new).with(hash_including(client_options)).and_return(rest_client) - subject + realtime_client end context 'for attribute' do [:environment, :use_tls?, :log_level, :custom_host].each do |attribute| specify "##{attribute}" do - expect(subject.rest_client).to receive(attribute) - subject.public_send attribute + expect(realtime_client.rest_client).to receive(attribute) + realtime_client.public_send attribute end end end end + context 'when :transport_params option is passed' do + let(:expected_transport_params) do + { 'heartbeats' => 'true', 'v' => '1.0', 'extra_param' => 'extra_param' } + end + let(:client_options) do + { key: 'appid.keyuid:keysecret', transport_params: { heartbeats: true, v: 1.0, extra_param: 'extra_param'} } + end + + it 'converts options to strings' do + expect(realtime_client.transport_params).to eq(expected_transport_params) + end + end + context 'push' do let(:client_options) { { key: 'appid.keyuid:keysecret' } } specify '#device is not supported and raises an exception' do - expect { subject.device }.to raise_error Ably::Exceptions::PushNotificationsNotSupported + expect { realtime_client.device }.to raise_error Ably::Exceptions::PushNotificationsNotSupported end specify '#push returns a Push object' do - expect(subject.push).to be_a(Ably::Realtime::Push) + expect(realtime_client.push).to be_a(Ably::Realtime::Push) end end after(:all) do sleep 1 # let realtime library shut down any open clients