dcrouter/test/suite/smtpclient_reliability/test.crel-07.resource-cleanup.ts

52 lines
1.4 KiB
TypeScript
Raw Permalink Normal View History

2025-05-25 19:02:18 +00:00
import { tap, expect } from '@git.zone/tstest/tapbundle';
2025-05-26 14:50:55 +00:00
import { createTestServer } from '../../helpers/server.loader.js';
import { createTestSmtpClient } from '../../helpers/smtp.client.js';
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
tap.test('CREL-07: Resource Cleanup Tests', async () => {
2025-05-26 14:50:55 +00:00
console.log('\n🧹 Testing SMTP Client Resource Cleanup');
console.log('=' .repeat(60));
2025-05-24 18:12:08 +00:00
2025-05-26 14:50:55 +00:00
const testServer = await createTestServer({});
2025-05-24 18:12:08 +00:00
2025-05-26 14:50:55 +00:00
try {
2025-05-26 16:14:49 +00:00
console.log('\nTest 1: Basic client creation and cleanup');
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
// Create a client
2025-05-26 14:50:55 +00:00
const smtpClient = createTestSmtpClient({
host: testServer.hostname,
2025-05-26 16:14:49 +00:00
port: testServer.port
2025-05-26 14:50:55 +00:00
});
2025-05-26 16:14:49 +00:00
console.log(' ✓ Client created');
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
// Verify connection
2025-05-26 14:50:55 +00:00
try {
2025-05-26 16:14:49 +00:00
const verifyResult = await smtpClient.verify();
console.log(' ✓ Connection verified:', verifyResult);
2025-05-26 14:50:55 +00:00
} catch (error) {
2025-05-26 16:14:49 +00:00
console.log(' ⚠️ Verify failed:', error.message);
2025-05-26 14:50:55 +00:00
}
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
// Close the client
2025-05-26 14:50:55 +00:00
smtpClient.close();
2025-05-26 16:14:49 +00:00
console.log(' ✓ Client closed');
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
console.log('\nTest 2: Multiple close calls');
const testClient = createTestSmtpClient({
host: testServer.hostname,
port: testServer.port
});
2025-05-24 18:12:08 +00:00
2025-05-26 16:14:49 +00:00
// Close multiple times - should not throw
testClient.close();
testClient.close();
testClient.close();
console.log(' ✓ Multiple close calls handled safely');
2025-05-26 14:50:55 +00:00
2025-05-26 16:14:49 +00:00
console.log('\n✅ CREL-07: Resource cleanup tests completed');
2025-05-26 14:50:55 +00:00
} finally {
testServer.server.close();
2025-05-24 18:12:08 +00:00
}
2025-05-26 14:50:55 +00:00
});
2025-05-24 18:12:08 +00:00
2025-05-26 14:50:55 +00:00
tap.start();