mirror of
https://github.com/ditkrg/idempotent-request.git
synced 2026-01-22 22:06:44 +00:00
policy should be required
This commit is contained in:
parent
2d5542f256
commit
517dc5c007
@ -3,7 +3,7 @@ module IdempotentRequest
|
||||
def initialize(app, config = {})
|
||||
@app = app
|
||||
@config = config
|
||||
@decider = config[:decider]
|
||||
@policy = config.fetch(:policy)
|
||||
end
|
||||
|
||||
def call(env)
|
||||
@ -20,15 +20,15 @@ module IdempotentRequest
|
||||
|
||||
private
|
||||
|
||||
attr_reader :app, :env, :config, :request, :decider
|
||||
attr_reader :app, :env, :config, :request, :policy
|
||||
|
||||
def process?
|
||||
!request.key.to_s.empty? && should_be_idempotent?
|
||||
end
|
||||
|
||||
def should_be_idempotent?
|
||||
return false unless decider
|
||||
decider.new(request).should?
|
||||
return false unless policy
|
||||
policy.new(request).should?
|
||||
end
|
||||
|
||||
def set_request(env)
|
||||
|
||||
@ -9,13 +9,13 @@ RSpec.describe IdempotentRequest::Middleware do
|
||||
)
|
||||
end
|
||||
let(:storage) { @memory_storage ||= IdempotentRequest::MemoryStorage.new }
|
||||
let(:decider) do
|
||||
class_double('IdempotentRequest::Decider', new: double(should?: true))
|
||||
let(:policy) do
|
||||
class_double('IdempotentRequest::policy', new: double(should?: true))
|
||||
end
|
||||
|
||||
let(:middleware) do
|
||||
described_class.new(app,
|
||||
decider: decider,
|
||||
policy: policy,
|
||||
storage: storage,
|
||||
header_key: 'X-Qonto-Idempotency-Key'
|
||||
)
|
||||
@ -45,8 +45,8 @@ RSpec.describe IdempotentRequest::Middleware do
|
||||
end
|
||||
|
||||
context 'when should not be idempotent' do
|
||||
let(:decider) do
|
||||
class_double('IdempotentRequest::Decider', new: double(should?: false))
|
||||
let(:policy) do
|
||||
class_double('IdempotentRequest::policy', new: double(should?: false))
|
||||
end
|
||||
|
||||
it 'should not read storage' do
|
||||
|
||||
Loading…
Reference in New Issue
Block a user