56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
|
import { expect, tap } from '../ts/plugins.js';
|
||
|
import { type ClamAVLogEvent, ClamAVManager } from '../ts/classes.clamav.manager.js';
|
||
|
import { setupClamAV, cleanupClamAV, getManager } from './helpers/clamav.helper.js';
|
||
|
|
||
|
let manager: ClamAVManager;
|
||
|
|
||
|
tap.test('setup', async () => {
|
||
|
manager = await setupClamAV();
|
||
|
expect(manager).toBeTruthy();
|
||
|
});
|
||
|
|
||
|
tap.test('should have initialized container and receive logs', async () => {
|
||
|
let logReceived = false;
|
||
|
|
||
|
// Add event listener for logs
|
||
|
manager.on('log', (event: ClamAVLogEvent) => {
|
||
|
console.log(`[Test] Received log event: ${event.type} - ${event.message}`);
|
||
|
logReceived = true;
|
||
|
});
|
||
|
|
||
|
// Wait for logs
|
||
|
const maxWaitTime = 5000;
|
||
|
const startTime = Date.now();
|
||
|
|
||
|
while (!logReceived && Date.now() - startTime < maxWaitTime) {
|
||
|
await new Promise(resolve => setTimeout(resolve, 100));
|
||
|
}
|
||
|
|
||
|
expect(logReceived).toBeTruthy('No logs received within timeout period');
|
||
|
|
||
|
// Verify container is running by checking if we can get database info
|
||
|
try {
|
||
|
const dbInfo = await manager.getDatabaseInfo();
|
||
|
expect(dbInfo).toBeTruthy('Container should be running and able to get database info');
|
||
|
} catch (error) {
|
||
|
console.error('Error getting database info:', error);
|
||
|
expect.fail('Failed to get database info - container may not be fully initialized');
|
||
|
}
|
||
|
});
|
||
|
|
||
|
tap.test('should get database info', async () => {
|
||
|
const dbInfo = await manager.getDatabaseInfo();
|
||
|
console.log('Database Info:', dbInfo);
|
||
|
expect(dbInfo).toBeTruthy();
|
||
|
});
|
||
|
|
||
|
tap.test('should update database', async () => {
|
||
|
await manager.updateDatabase();
|
||
|
});
|
||
|
|
||
|
tap.test('cleanup', async () => {
|
||
|
await cleanupClamAV();
|
||
|
});
|
||
|
|
||
|
tap.start();
|