Sha256: 08d38e39dd8c3bb41d8b4617b4fe8ae42901dba07dd6dff78b223896074dc94b

Contents?: true

Size: 1.53 KB

Versions: 82

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

require 'ably/models/message_encoders/utf8'

describe Ably::Models::MessageEncoders::Utf8 do
  let(:string_ascii)        { 'string'.encode(Encoding::ASCII_8BIT) }
  let(:string_utf8)         { 'string'.encode(Encoding::UTF_8) }

  let(:client)              { instance_double('Ably::Realtime::Client') }

  subject { Ably::Models::MessageEncoders::Utf8.new(client) }

  context '#decode' do
    before do
      subject.decode message, {}
    end

    context 'message with utf8 payload' do
      let(:message) { { data: string_ascii, encoding: 'utf-8' } }

      it 'sets the encoding' do
        expect(message[:data]).to eq(string_utf8)
        expect(message[:data].encoding).to eql(Encoding::UTF_8)
      end

      it 'strips the encoding' do
        expect(message[:encoding]).to be_nil
      end
    end

    context 'message with utf8 payload before other payloads' do
      let(:message) { { data: string_utf8, encoding: 'json/utf-8' } }

      it 'sets the encoding' do
        expect(message[:data]).to eql(string_utf8)
        expect(message[:data].encoding).to eql(Encoding::UTF_8)
      end

      it 'strips the encoding' do
        expect(message[:encoding]).to eql('json')
      end
    end

    context 'message with another payload' do
      let(:message) { { data: string_ascii, encoding: 'json' } }

      it 'leaves the message data intact' do
        expect(message[:data]).to eql(string_ascii)
      end

      it 'leaves the encoding intact' do
        expect(message[:encoding]).to eql('json')
      end
    end
  end
end

Version data entries

82 entries across 82 versions & 2 rubygems

Version Path
ably-rest-1.2.7 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.7 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.6 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.6 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.4 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.4 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.3 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.3 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.2 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.2 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.1 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.1 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.2.0 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.2.0 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.1.8 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.1.8 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.1.7 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.1.7 spec/unit/models/message_encoders/utf8_spec.rb
ably-rest-1.1.6 lib/submodules/ably-ruby/spec/unit/models/message_encoders/utf8_spec.rb
ably-1.1.6 spec/unit/models/message_encoders/utf8_spec.rb