import { tap, expect } from '@push.rocks/tapbundle'; import * as plugins from '../ts/plugins.js'; import * as paths from '../ts/paths.js'; // Import the components we want to test import { SenderReputationMonitor } from '../ts/deliverability/classes.senderreputationmonitor.js'; import { IPWarmupManager } from '../ts/deliverability/classes.ipwarmupmanager.js'; // Ensure test directories exist paths.ensureDirectories(); // Test SenderReputationMonitor functionality tap.test('SenderReputationMonitor should track sending events', async () => { // Initialize monitor with test domain const monitor = SenderReputationMonitor.getInstance({ enabled: true, domains: ['test-domain.com'] }); // Record some events monitor.recordSendEvent('test-domain.com', { type: 'sent', count: 100 }); monitor.recordSendEvent('test-domain.com', { type: 'delivered', count: 95 }); // Get domain metrics const metrics = monitor.getReputationData('test-domain.com'); // Verify metrics were recorded if (metrics) { expect(metrics.volume.sent).toEqual(100); expect(metrics.volume.delivered).toEqual(95); } }); // Test IPWarmupManager functionality tap.test('IPWarmupManager should handle IP allocation policies', async () => { // Initialize warmup manager const manager = IPWarmupManager.getInstance({ enabled: true, ipAddresses: ['192.168.1.1', '192.168.1.2'], targetDomains: ['test-domain.com'] }); // Set allocation policy manager.setActiveAllocationPolicy('balanced'); // Verify allocation methods work const canSend = manager.canSendMoreToday('192.168.1.1'); expect(typeof canSend).toEqual('boolean'); }); export default tap.start();