fix: use socket pooling for http requests in Node.js (#12480)

This commit is contained in:
Justin Starry
2020-09-25 23:52:01 +08:00
committed by GitHub
parent 1c970bb39f
commit c94813e436
3 changed files with 84 additions and 0 deletions

View File

@ -0,0 +1,40 @@
// @flow
import {AgentManager, DESTROY_TIMEOUT_MS} from '../src/agent-manager';
import {sleep} from '../src/util/sleep';
jest.setTimeout(10 * 1000);
test('agent manager', async () => {
const manager = new AgentManager();
const agent = manager._agent;
expect(manager._activeRequests).toBe(0);
expect(manager._destroyTimeout).toBeNull();
manager.requestStart();
expect(manager._activeRequests).toBe(1);
expect(manager._destroyTimeout).toBeNull();
manager.requestEnd();
expect(manager._activeRequests).toBe(0);
expect(manager._destroyTimeout).not.toBeNull();
manager.requestStart();
manager.requestStart();
expect(manager._activeRequests).toBe(2);
expect(manager._destroyTimeout).toBeNull();
manager.requestEnd();
manager.requestEnd();
expect(manager._activeRequests).toBe(0);
expect(manager._destroyTimeout).not.toBeNull();
expect(manager._agent).toBe(agent);
await sleep(DESTROY_TIMEOUT_MS);
expect(manager._agent).not.toBe(agent);
});