solana/web3.js/test/agent-manager.test.js

41 lines
990 B
JavaScript

// @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);
});