platformservice/test/test.deliverability.ts

55 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');
});
tap.test('stop', async () => {
await tap.stopForcefully();
});
export default tap.start();