Sha256: eff078655ae20c410d48bd779497faf8146bcf32131cbdb828aa2d059e86bdc9

Contents?: true

Size: 1.4 KB

Versions: 6792

Compression:

Stored size: 1.4 KB

Contents

require 'redis'
require 'typhoeus/cache/redis'
require 'spec_helper'

describe Typhoeus::Cache::Redis do
  let(:redis) { instance_double(Redis) }
  let(:cache) { Typhoeus::Cache::Redis.new(redis) }

  let(:base_url) { "localhost:3001" }
  let(:request) { Typhoeus::Request.new(base_url, {:method => :get}) }
  let(:response) { Typhoeus::Response.new(:response_code => 0, :return_code => 0, :mock => true) }
  let(:serialized_response) { Marshal.dump(response) }

  describe "#set" do
    it "sends the serialized request to Redis" do
      expect(redis).to receive(:set).with(request.cache_key, serialized_response)
      expect(redis).to_not receive(:expire).with(request.cache_key, request.cache_ttl)

      cache.set(request, response)
    end
  end

  describe "#get" do
    it "returns nil when the key is not in Redis" do
      expect(redis).to receive(:get).with(request.cache_key).and_return(nil)

      expect(cache.get(request)).to be_nil
    end

    it "returns the cached response when the key is in Redis" do
      expect(redis).to receive(:get).with(request.cache_key).and_return(serialized_response)

      result = cache.get(request)
      expect(result).to_not be_nil
      expect(result.response_code).to eq(response.response_code)
      expect(result.return_code).to eq(response.return_code)
      expect(result.headers).to eq(response.headers)
      expect(result.body).to eq(response.body)
    end
  end
end

Version data entries

6,792 entries across 6,789 versions & 26 rubygems

Version Path
cybrid_api_organization_ruby-0.123.143 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.143 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.142 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.142 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.142 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.140 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.140 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.140 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.139 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.139 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.139 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.137 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.137 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.137 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.135 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.135 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.135 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_bank_ruby-0.123.134 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_id_ruby-0.123.134 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb
cybrid_api_organization_ruby-0.123.134 vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb