fix: use socket pooling for http requests in Node.js (#12480)
This commit is contained in:
40
web3.js/test/agent-manager.test.js
Normal file
40
web3.js/test/agent-manager.test.js
Normal 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);
|
||||
});
|
Reference in New Issue
Block a user