Refactor test

This avoids leaking the class definition.
This commit is contained in:
Olle Jonsson 2022-02-02 15:18:22 +01:00 committed by Olle Jonsson
parent 85dfdf824c
commit 46f3b678f0

View File

@ -1,30 +1,31 @@
# frozen_string_literal: true
class CustomMiddleware < Faraday::Middleware
end
RSpec.describe Faraday::MiddlewareRegistry do
before do
stub_const('CustomMiddleware', custom_middleware_klass)
end
let(:custom_middleware_klass) { Class.new(Faraday::Middleware) }
let(:dummy) { Class.new { extend Faraday::MiddlewareRegistry } }
after { dummy.unregister_middleware(:custom) }
it 'allows to register with constant' do
dummy.register_middleware(custom: CustomMiddleware)
expect(dummy.lookup_middleware(:custom)).to eq(CustomMiddleware)
dummy.register_middleware(custom: custom_middleware_klass)
expect(dummy.lookup_middleware(:custom)).to eq(custom_middleware_klass)
end
it 'allows to register with symbol' do
dummy.register_middleware(custom: :CustomMiddleware)
expect(dummy.lookup_middleware(:custom)).to eq(CustomMiddleware)
expect(dummy.lookup_middleware(:custom)).to eq(custom_middleware_klass)
end
it 'allows to register with string' do
dummy.register_middleware(custom: 'CustomMiddleware')
expect(dummy.lookup_middleware(:custom)).to eq(CustomMiddleware)
expect(dummy.lookup_middleware(:custom)).to eq(custom_middleware_klass)
end
it 'allows to register with Proc' do
dummy.register_middleware(custom: -> { CustomMiddleware })
expect(dummy.lookup_middleware(:custom)).to eq(CustomMiddleware)
dummy.register_middleware(custom: -> { custom_middleware_klass })
expect(dummy.lookup_middleware(:custom)).to eq(custom_middleware_klass)
end
end