UNPKG

fast-proxy-balancer

Version:
51 lines โ€ข 1.88 kB
import { ProxyBalancer } from '../src/ProxyBalancer.js'; // Mock testProxy function async function mockTestProxy(proxy, testUrl, timeout) { console.log('๐Ÿงช mockTestProxy called:', proxy.url); proxy.latency = Math.floor(Math.random() * 200); proxy.failures = 0; } // Mock sortProxies function function mockSortProxies(proxies) { console.log('๐Ÿ“Š mockSortProxies called'); return proxies.sort((a, b) => a.latency - b.latency); // Simple sort for testing } // Extend ProxyBalancer to inject mocks class MockProxyBalancer extends ProxyBalancer { async refreshProxies() { console.log('๐Ÿ” Using mock refreshProxies...'); const promises = this['proxies'].map((proxy) => mockTestProxy(proxy, '', 0)); await Promise.all(promises); } getBestProxy = ProxyBalancer.prototype.getBestProxy; ['proxies'] = []; } // Manual test run async function testManual() { const proxyBalancer = new MockProxyBalancer([ 'http://proxy1.com', 'http://proxy2.com', 'http://proxy3.com' ]); console.log('๐Ÿš€ Initializing...'); await proxyBalancer.init(); try { await proxyBalancer.refreshProxies(); console.log('โœ… Proxies refreshed'); const bestProxy = await proxyBalancer.getBestProxy(); console.log('๐Ÿ† Best Proxy:', bestProxy.url); } catch (error) { console.error('โŒ Error during refresh or best proxy selection:', error); } console.log('๐Ÿ“Š Proxy stats:'); console.table(proxyBalancer.getProxyStats()); console.log('๐Ÿ“Œ Sorted by latency:'); console.table(proxyBalancer.sortByLatency()); console.log('โŒ Failed proxies:'); console.table(proxyBalancer.getFailedProxies()); console.log('๐Ÿ“‰ Summary:'); console.log(proxyBalancer.getStatsSummary()); } testManual(); //# sourceMappingURL=test-manual.js.map