import { tap, expect } from '@git.zone/tstest/tapbundle'; import { createTestServer } from '../../helpers/server.loader.js'; import { createTestSmtpClient } from '../../helpers/smtp.client.js'; tap.test('CREL-07: Resource Cleanup Tests', async () => { console.log('\n๐Ÿงน Testing SMTP Client Resource Cleanup'); console.log('=' .repeat(60)); const testServer = await createTestServer({}); try { console.log('\nTest 1: Basic client creation and cleanup'); // Create a client const smtpClient = createTestSmtpClient({ host: testServer.hostname, port: testServer.port }); console.log(' โœ“ Client created'); // Verify connection try { const verifyResult = await smtpClient.verify(); console.log(' โœ“ Connection verified:', verifyResult); } catch (error) { console.log(' โš ๏ธ Verify failed:', error.message); } // Close the client smtpClient.close(); console.log(' โœ“ Client closed'); console.log('\nTest 2: Multiple close calls'); const testClient = createTestSmtpClient({ host: testServer.hostname, port: testServer.port }); // Close multiple times - should not throw testClient.close(); testClient.close(); testClient.close(); console.log(' โœ“ Multiple close calls handled safely'); console.log('\nโœ… CREL-07: Resource cleanup tests completed'); } finally { testServer.server.close(); } }); tap.start();