MovieMapper/final-test.js

84 lines
2.7 KiB
JavaScript

// 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/user/Projects/MovieMapper/main.js',
'--dir=/Users/user/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');