|
|
@ -1,5 +1,6 @@ |
|
|
|
import test from 'ava' |
|
|
|
import nock from 'nock' |
|
|
|
import subSeconds from 'date-fns/sub_seconds' |
|
|
|
import data from './fixtures/data' |
|
|
|
import Onionoo from '../' |
|
|
|
|
|
|
@ -55,3 +56,32 @@ test('Responses with future max-age are cached', async t => { |
|
|
|
|
|
|
|
t.deepEqual(cachedResponse.body, data.dummyResponse) |
|
|
|
}) |
|
|
|
|
|
|
|
test('Responses older than max-age are not cached', async t => { |
|
|
|
const onionoo = new Onionoo() |
|
|
|
|
|
|
|
const defaultEndpoint = data.defaultEndpoints[0] |
|
|
|
const responseHeaders = { |
|
|
|
date: subSeconds(new Date(), 15).toUTCString(), |
|
|
|
age: 0, |
|
|
|
'cache-control': 'public, max-age=10' |
|
|
|
} |
|
|
|
|
|
|
|
const scope = nock(data.defaultBaseUrl) |
|
|
|
.get(`/${defaultEndpoint}`) |
|
|
|
.reply(200, data.dummyResponse, responseHeaders) |
|
|
|
|
|
|
|
const response = await onionoo[defaultEndpoint]() |
|
|
|
|
|
|
|
t.deepEqual(response.body, data.dummyResponse) |
|
|
|
t.truthy(scope.isDone()) |
|
|
|
|
|
|
|
const scope2 = nock(data.defaultBaseUrl) |
|
|
|
.get(`/${defaultEndpoint}`) |
|
|
|
.reply(200, data.dummyResponse, responseHeaders) |
|
|
|
|
|
|
|
const response2 = await onionoo[defaultEndpoint]() |
|
|
|
|
|
|
|
t.deepEqual(response2.body, data.dummyResponse) |
|
|
|
t.truthy(scope2.isDone()) |
|
|
|
}) |
|
|
|