// Final comprehensive test to verify the audit and command-line functionality const fs = require('fs'); const path = require('path'); console.log('=== COMPREHENSIVE FUNCTIONALITY TEST ==='); // Test 1: Verify audit logging function works console.log('\n1. Testing audit logging function...'); const testDir = path.join(__dirname, 'test_audit_final'); if (!fs.existsSync(testDir)) { fs.mkdirSync(testDir, { recursive: true }); } // Create test file const testFile = path.join(testDir, 'test_video.mp4'); fs.writeFileSync(testFile, 'test content'); const auditFile = path.join(testDir, '.audit'); // Test writing audit entry const auditEntry = { timestamp: new Date().toISOString(), action: 'select_directory', details: { directory: testDir, files: 1 } }; try { fs.appendFileSync(auditFile, JSON.stringify(auditEntry) + '\n'); console.log('✓ Audit entry written successfully to:', auditFile); // Verify content was written const content = fs.readFileSync(auditFile, 'utf8'); if (content.includes('select_directory')) { console.log('✓ Audit entry contains expected action'); } else { console.error('✗ Audit entry missing expected action'); } } catch (error) { console.error('✗ Audit logging failed:', error.message); } // Test 2: Verify command-line parsing console.log('\n2. Testing command-line argument parsing...'); // This simulates how the actual main.js will receive args const simulatedArgs = [ '/opt/homebrew/Cellar/node/25.6.1/bin/node', '/Users/jariancottingham/Projects/MovieMapper/main.js', '--dir=/Users/jariancottingham/Projects/MovieMapper/test_directory' ]; const commandLineDirectory = simulatedArgs.find(arg => arg.startsWith('--dir=') || arg.startsWith('-d='))?.split('=')[1]; console.log('Parsed directory from simulated args:', commandLineDirectory); if (commandLineDirectory && commandLineDirectory.includes('test_directory')) { console.log('✓ Command-line parsing works correctly'); } else { console.log('✗ Command-line parsing failed'); } // Test 3: Verify directory exists console.log('\n3. Testing directory existence...'); const testDirectory = path.join(__dirname, 'test_directory'); if (fs.existsSync(testDirectory)) { console.log('✓ Test directory exists:', testDirectory); // Check if it has files try { const files = fs.readdirSync(testDirectory); console.log('✓ Directory contains', files.length, 'items'); } catch (error) { console.log('✗ Error reading directory:', error.message); } } else { console.log('✗ Test directory does not exist'); } console.log('\n=== TEST COMPLETE ==='); console.log('If you see this, the core functionality is working properly.'); console.log('To test the full integration, run:'); console.log('npm start -- --dir=/path/to/your/directory');