Sha256: c6ec80a8077f4833319cab9d433564ff773e700d1624294b4e3e6f4edc23fac9
Contents?: true
Size: 1.3 KB
Versions: 14
Compression:
Stored size: 1.3 KB
Contents
# frozen_string_literal: true require 'rails_helper' describe LHC do context 'interceptor response competition' do before(:each) do # rubocop:disable Style/ClassVars class LocalCacheInterceptor < LHC::Interceptor @@cached = false cattr_accessor :cached def before_request if @@cached return LHC::Response.new(Typhoeus::Response.new(response_code: 200, return_code: :ok, response_body: 'Im served from local cache'), nil) end end end # rubocop:enable Style/ClassVars class RemoteCacheInterceptor < LHC::Interceptor def before_request if request.response.nil? return LHC::Response.new(Typhoeus::Response.new(response_code: 200, return_code: :ok, response_body: 'Im served from remote cache'), nil) end end end LHC.configure { |c| c.interceptors = [LocalCacheInterceptor, RemoteCacheInterceptor] } end it 'can handle multiple interceptors that compete for returning the response' do response = LHC.get('http://local.ch') expect(response.body).to eq 'Im served from remote cache' LocalCacheInterceptor.cached = true response = LHC.get('http://local.ch') expect(response.body).to eq 'Im served from local cache' end end end
Version data entries
14 entries across 14 versions & 1 rubygems