import { tap, expect } from '@push.rocks/tapbundle'; import { SmartProxy } from '../ts/smartproxy/classes.smartproxy.js'; tap.test('performRenewals only renews domains below threshold', async () => { // Set up SmartProxy instance without real servers const proxy = new SmartProxy({ fromPort: 0, toPort: 0, domainConfigs: [], sniEnabled: false, defaultAllowedIPs: [], globalPortRanges: [] }); // Stub port80Handler status and renewal const statuses = new Map(); const now = new Date(); statuses.set('expiring.com', { certObtained: true, expiryDate: new Date(now.getTime() + 2 * 24 * 60 * 60 * 1000), obtainingInProgress: false }); statuses.set('ok.com', { certObtained: true, expiryDate: new Date(now.getTime() + 100 * 24 * 60 * 60 * 1000), obtainingInProgress: false }); const renewed: string[] = []; // Inject fake handler (proxy as any).port80Handler = { getDomainCertificateStatus: () => statuses, renewCertificate: async (domain: string) => { renewed.push(domain); } }; // Configure threshold proxy.settings.port80HandlerConfig.enabled = true; proxy.settings.port80HandlerConfig.autoRenew = true; proxy.settings.port80HandlerConfig.renewThresholdDays = 10; // Execute renewals await (proxy as any).performRenewals(); // Only the expiring.com domain should be renewed expect(renewed).toEqual(['expiring.com']); }); export default tap.start();