Sha256: a54e0972da02b05cb4a7b0b048b9d7653e33a36b6c6881ec402b856714c564e1

Contents?: true

Size: 1.98 KB

Versions: 19

Compression:

Stored size: 1.98 KB

Contents

require 'spec_helper'
require 'shared/model_behaviour'

describe Ably::Models::ConnectionDetails do
  include Ably::Modules::Conversions

  subject { Ably::Models::ConnectionDetails }

  it_behaves_like 'a model', with_simple_attributes: %w(client_id connection_key max_message_size max_frame_size max_inbound_rate) do
    let(:model_args) { [] }
  end

  context 'attributes' do
    let(:connection_state_ttl_ms) { 5_000 }

    context '#connection_state_ttl' do
      subject { Ably::Models::ConnectionDetails.new({ connection_state_ttl: connection_state_ttl_ms }) }

      it 'retrieves attribute :connection_state_ttl and converts it from ms to s' do
        expect(subject.connection_state_ttl).to eql(connection_state_ttl_ms / 1000)
      end
    end
  end

  context '==' do
    let(:attributes) { { client_id: 'unique' } }

    it 'is true when attributes are the same' do
      connection_details = -> { Ably::Models::ConnectionDetails.new(attributes) }
      expect(connection_details.call).to eq(connection_details.call)
    end

    it 'is false when attributes are not the same' do
      expect(Ably::Models::ConnectionDetails.new(client_id: '1')).to_not eq(Ably::Models::ConnectionDetails.new(client_id: '2'))
    end

    it 'is false when class type differs' do
      expect(Ably::Models::ConnectionDetails.new(client_id: '1')).to_not eq(nil)
    end
  end

  context 'ConnectionDetails conversion methods', :api_private do
    context 'with a ConnectionDetails object' do
      let(:details) { Ably::Models::ConnectionDetails.new(client_id: random_str) }

      it 'returns the ConnectionDetails object' do
        expect(Ably::Models::ConnectionDetails(details)).to eql(details)
      end
    end

    context 'with a JSON object' do
      let(:client_id) { random_str }
      let(:details_json) { { client_id: client_id } }

      it 'returns a new ConnectionDetails object from the JSON' do
        expect(Ably::Models::ConnectionDetails(details_json).client_id).to eql(client_id)
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 2 rubygems

Version Path
ably-rest-0.8.15 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-0.8.15 spec/unit/models/connection_details_spec.rb
ably-rest-0.9.3 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-rest-0.9.2 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-rest-0.9.1 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-rest-0.9.0 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-rest-0.8.14 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-0.8.14 spec/unit/models/connection_details_spec.rb
ably-rest-0.8.13 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-0.8.13 spec/unit/models/connection_details_spec.rb
ably-0.8.12 spec/unit/models/connection_details_spec.rb
ably-0.8.11 spec/unit/models/connection_details_spec.rb
ably-0.8.10 spec/unit/models/connection_details_spec.rb
ably-rest-0.8.9 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb
ably-0.8.9 spec/unit/models/connection_details_spec.rb
ably-0.8.8 spec/unit/models/connection_details_spec.rb
ably-0.8.7 spec/unit/models/connection_details_spec.rb
ably-0.8.6 spec/unit/models/connection_details_spec.rb
ably-rest-0.8.6 lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb