Sha256: 2e8dcf9cb462a89746652f8b97c624030ea6787fcb5a0cfe06ef73bcd60ab428

Contents?: true

Size: 1.04 KB

Versions: 143

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Faraday
  module StreamingResponseChecker
    def check_streaming_response(streamed, options = {})
      opts = {
        prefix: '',
        streaming?: true
      }.merge(options)

      expected_response = opts[:prefix] + big_string

      chunks, sizes = streamed.transpose

      # Check that the total size of the chunks (via the last size returned)
      # is the same size as the expected_response
      expect(sizes.last).to eq(expected_response.bytesize)

      start_index = 0
      expected_chunks = []
      chunks.each do |actual_chunk|
        expected_chunk = expected_response[start_index..((start_index + actual_chunk.bytesize) - 1)]
        expected_chunks << expected_chunk
        start_index += expected_chunk.bytesize
      end

      # it's easier to read a smaller portion, so we check that first
      expect(expected_chunks[0][0..255]).to eq(chunks[0][0..255])

      [expected_chunks, chunks].transpose.each do |expected, actual|
        expect(actual).to eq(expected)
      end
    end
  end
end

Version data entries

143 entries across 130 versions & 20 rubygems

Version Path
faraday-2.7.7 spec/support/streaming_response_checker.rb
faraday-2.7.6 spec/support/streaming_response_checker.rb
faraday-2.7.5 spec/support/streaming_response_checker.rb
fluent-plugin-google-cloud-logging-on-prem-0.1.0 vendor/ruby/3.1.0/gems/faraday-2.7.4/spec/support/streaming_response_checker.rb
zilla-0.2.0 vendor/bundle/ruby/3.2.0/gems/faraday-2.7.4/spec/support/streaming_response_checker.rb
faraday-2.7.4 spec/support/streaming_response_checker.rb
faraday-1.10.3 spec/support/streaming_response_checker.rb
faraday-2.7.3 spec/support/streaming_response_checker.rb
faraday-2.7.2 spec/support/streaming_response_checker.rb
tdiary-5.2.4 vendor/bundle/ruby/3.1.0/gems/faraday-2.5.2/spec/support/streaming_response_checker.rb
faraday-2.7.1 spec/support/streaming_response_checker.rb
faraday-2.7.0 spec/support/streaming_response_checker.rb
faraday-2.6.0 spec/support/streaming_response_checker.rb
tdiary-5.2.3 vendor/bundle/ruby/3.1.0/gems/faraday-2.5.2/spec/support/streaming_response_checker.rb
faraday-1.10.2 spec/support/streaming_response_checker.rb
faraday-2.5.2 spec/support/streaming_response_checker.rb
faraday-2.5.1 spec/support/streaming_response_checker.rb
faraday-2.5.0 spec/support/streaming_response_checker.rb
faraday-1.10.1 spec/support/streaming_response_checker.rb
faraday-2.4.0 spec/support/streaming_response_checker.rb