Add caching for successful responses

This commit is contained in:
Jean Pierre Guarin 2018-02-16 10:28:15 -05:00
parent 897fa0cbad
commit ab29371424
2 changed files with 21 additions and 11 deletions

View File

@ -19,11 +19,8 @@ module IdempotentRequest
def write(*data) def write(*data)
status, headers, response = data status, headers, response = data
response = response.body if response.respond_to?(:body) response = response.body if response.respond_to?(:body)
return data unless (200..226).include?(status)
return data unless status == 200
storage.write(key, payload(status, headers, response)) storage.write(key, payload(status, headers, response))
data data
end end

View File

@ -81,14 +81,27 @@ RSpec.describe IdempotentRequest::RequestManager do
}) })
end end
context 'when status is 200' do describe 'when status 2xx' do
let(:data) do context 'when status is 200' do
[200, {}, 'body'] let(:data) do
[200, {}, 'body']
end
it 'should be stored' do
request_storage.write(*data)
expect(memory_storage.read(request.key)).to eq(payload)
end
end end
it 'should be stored' do context 'when status is 226' do
request_storage.write(*data) let(:data) do
expect(memory_storage.read(request.key)).to eq(payload) [226, {}, 'body']
end
it 'should be stored' do
request_storage.write(*data)
expect(memory_storage.read(request.key)).to eq(payload)
end
end end
end end
@ -97,7 +110,7 @@ RSpec.describe IdempotentRequest::RequestManager do
[404, {}, 'body'] [404, {}, 'body']
end end
it 'should be stored' do it 'should not be stored' do
request_storage.write(*data) request_storage.write(*data)
expect(memory_storage.read(request.key)).to be_nil expect(memory_storage.read(request.key)).to be_nil
end end