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)
status, headers, response = data
response = response.body if response.respond_to?(:body)
return data unless status == 200
return data unless (200..226).include?(status)
storage.write(key, payload(status, headers, response))
data
end

View File

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