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
alloy_sdk-0.1.0 vendor/bundle/ruby/3.0.0/gems/faraday-1.0.1/spec/support/streaming_response_checker.rb
tdiary-5.2.2 vendor/bundle/ruby/3.1.0/gems/faraday-2.3.0/spec/support/streaming_response_checker.rb
faraday-2.3.0 spec/support/streaming_response_checker.rb
op_connect-0.1.2 vendor/bundle/ruby/3.1.0/gems/faraday-1.10.0/spec/support/streaming_response_checker.rb
plaid-14.13.0 vendor/bundle/ruby/3.0.0/gems/faraday-1.10.0/spec/support/streaming_response_checker.rb
tdiary-5.2.1 vendor/bundle/ruby/3.1.0/gems/faraday-1.10.0/spec/support/streaming_response_checker.rb
faraday-1.10.0 spec/support/streaming_response_checker.rb
plaid-14.12.1 vendor/bundle/ruby/3.0.0/gems/faraday-1.9.3/spec/support/streaming_response_checker.rb
faraday-2.2.0 spec/support/streaming_response_checker.rb
faraday-2.1.0 spec/support/streaming_response_checker.rb
plaid-14.12.0 vendor/bundle/ruby/2.6.0/gems/faraday-1.8.0/spec/support/streaming_response_checker.rb
plaid-14.12.0 vendor/bundle/ruby/2.6.0/gems/faraday-1.9.3/spec/support/streaming_response_checker.rb
plaid-14.11.1 vendor/bundle/ruby/2.6.0/gems/faraday-1.9.3/spec/support/streaming_response_checker.rb
faraday-1.9.3 spec/support/streaming_response_checker.rb
faraday-1.9.2 spec/support/streaming_response_checker.rb
faraday-1.9.1 spec/support/streaming_response_checker.rb
faraday-1.9.0 spec/support/streaming_response_checker.rb
faraday-2.0.1 spec/support/streaming_response_checker.rb
faraday-2.0.0 spec/support/streaming_response_checker.rb
faraday-2.0.0.alpha.pre.4 spec/support/streaming_response_checker.rb