Sha256: eff078655ae20c410d48bd779497faf8146bcf32131cbdb828aa2d059e86bdc9

Contents?: true

Size: 1.4 KB

Versions: 6837

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,837 entries across 6,834 versions & 27 rubygems

Version Path
ory-client-0.0.1.alpha55 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha54 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha53 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha52 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha51 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha50 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha49 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha48 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha47 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha46 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha45 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha44 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha43 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha42 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha41 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha40 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha39 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha38 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha37 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb
ory-client-0.0.1.alpha36 vendor/bundle/ruby/2.5.0/gems/typhoeus-1.4.0/spec/typhoeus/cache/redis_spec.rb