fix error with custom agent with circular reference

This commit is contained in:
Randall Schmidt 2021-07-03 10:20:32 -04:00
parent bffaa2aadc
commit 524308aa61
2 changed files with 11 additions and 0 deletions

@ -66,6 +66,9 @@ function getCacheKey(requestArguments) {
resourceCacheKeyJson.body = getBodyCacheKeyJson(resourceCacheKeyJson.body); resourceCacheKeyJson.body = getBodyCacheKeyJson(resourceCacheKeyJson.body);
initCacheKeyJson.body = getBodyCacheKeyJson(initCacheKeyJson.body); initCacheKeyJson.body = getBodyCacheKeyJson(initCacheKeyJson.body);
delete resourceCacheKeyJson.agent;
delete initCacheKeyJson.agent;
return md5(JSON.stringify([resourceCacheKeyJson, initCacheKeyJson, CACHE_VERSION])); return md5(JSON.stringify([resourceCacheKeyJson, initCacheKeyJson, CACHE_VERSION]));
} }

@ -6,6 +6,7 @@ const path = require('path');
const { URLSearchParams } = require('url'); const { URLSearchParams } = require('url');
const standardFetch = require('node-fetch'); const standardFetch = require('node-fetch');
const FetchCache = require('../index.js'); const FetchCache = require('../index.js');
const { Agent } = require('http');
const CACHE_PATH = path.join(__dirname, '..', '.cache'); const CACHE_PATH = path.join(__dirname, '..', '.cache');
const expectedPngBuffer = fs.readFileSync(path.join(__dirname, 'expected_png.png')); const expectedPngBuffer = fs.readFileSync(path.join(__dirname, 'expected_png.png'));
@ -299,6 +300,13 @@ describe('Cache tests', function() {
res = await cachedFetch(TWO_HUNDRED_URL, post(data2)); res = await cachedFetch(TWO_HUNDRED_URL, post(data2));
assert.strictEqual(res.fromCache, true); assert.strictEqual(res.fromCache, true);
}); });
it('Does not error with custom agent with circular properties', async function() {
const agent = new Agent();
agent.agent = agent;
await cachedFetch('http://httpbin.org/status/200', { agent });
})
}).timeout(10000); }).timeout(10000);
describe('Data tests', function() { describe('Data tests', function() {