51 lines
1.7 KiB
TypeScript
51 lines
1.7 KiB
TypeScript
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(); |