#!/usr/bin/env node /** * Verify Event Manager Consolidation * * Simple verification script to check that the consolidation was successful */ const fs = require('fs'); const path = require('path'); console.log('🔧 HVAC Event Manager Consolidation Verification'); console.log('================================================'); console.log(''); // Track results const results = { created: [], deleted: [], updated: [], issues: [] }; // Check that new consolidated files were created const newFiles = [ 'includes/class-hvac-event-manager.php', 'assets/css/hvac-event-manager.css', 'assets/js/hvac-event-manager.js' ]; console.log('✅ Checking new consolidated files...'); newFiles.forEach(file => { const fullPath = path.join(__dirname, file); if (fs.existsSync(fullPath)) { console.log(` ✅ ${file} - Created successfully`); results.created.push(file); } else { console.log(` ❌ ${file} - Missing!`); results.issues.push(`Missing file: ${file}`); } }); console.log(''); // Check that old fragmented files were deleted const deletedFiles = [ 'includes/class-hvac-manage-event.php', 'includes/class-hvac-event-edit-fix.php', 'includes/class-hvac-event-edit-comprehensive.php', 'includes/class-hvac-custom-event-edit.php', 'includes/class-event-form-handler.php', 'includes/community/class-event-handler.php' ]; console.log('✅ Checking old fragmented files were deleted...'); deletedFiles.forEach(file => { const fullPath = path.join(__dirname, file); if (!fs.existsSync(fullPath)) { console.log(` ✅ ${file} - Correctly deleted`); results.deleted.push(file); } else { console.log(` ⚠️ ${file} - Still exists (should be deleted)`); results.issues.push(`Old file still exists: ${file}`); } }); console.log(''); // Check that plugin file was updated console.log('✅ Checking plugin initialization updates...'); const pluginFile = 'includes/class-hvac-plugin.php'; const pluginPath = path.join(__dirname, pluginFile); if (fs.existsSync(pluginPath)) { const content = fs.readFileSync(pluginPath, 'utf8'); // Check for new event manager initialization if (content.includes('HVAC_Event_Manager::instance()')) { console.log(' ✅ HVAC_Event_Manager initialization found'); results.updated.push('Plugin initialization - HVAC_Event_Manager added'); } else { console.log(' ❌ HVAC_Event_Manager initialization not found'); results.issues.push('Plugin missing HVAC_Event_Manager initialization'); } // Check that old initializations were removed const oldInits = [ 'HVAC_Manage_Event', 'HVAC_Event_Edit_Fix', 'HVAC_Event_Edit_Comprehensive', 'HVAC_Custom_Event_Edit' ]; oldInits.forEach(oldInit => { if (!content.includes(`${oldInit}::`)) { console.log(` ✅ ${oldInit} initialization correctly removed`); results.updated.push(`Plugin initialization - ${oldInit} removed`); } else { console.log(` ⚠️ ${oldInit} initialization still exists`); results.issues.push(`Old initialization still exists: ${oldInit}`); } }); } else { console.log(' ❌ Plugin file not found'); results.issues.push('Plugin file not found'); } console.log(''); // Check new event manager features console.log('✅ Checking HVAC_Event_Manager features...'); const eventManagerPath = path.join(__dirname, 'includes/class-hvac-event-manager.php'); if (fs.existsSync(eventManagerPath)) { const content = fs.readFileSync(eventManagerPath, 'utf8'); const features = [ { name: 'Shortcode registration', pattern: 'add_shortcode' }, { name: 'Template loading', pattern: 'loadTemplate' }, { name: 'Form submission handling', pattern: 'handleFormSubmission' }, { name: 'Security validation', pattern: 'canUserEditEvent' }, { name: 'Generator-based data loading', pattern: 'Generator<' }, { name: 'Field mapping (from Event_Form_Handler)', pattern: 'mapFormFields' }, { name: 'Asset enqueuing', pattern: 'enqueueAssets' }, { name: 'CSS styling', pattern: 'addEventStyles' } ]; features.forEach(feature => { if (content.includes(feature.pattern)) { console.log(` ✅ ${feature.name} - Implemented`); } else { console.log(` ⚠️ ${feature.name} - Not found`); results.issues.push(`Missing feature: ${feature.name}`); } }); } else { console.log(' ❌ HVAC_Event_Manager file not found'); } console.log(''); // Summary console.log('📊 CONSOLIDATION SUMMARY'); console.log('========================'); console.log(`Created files: ${results.created.length}`); console.log(`Deleted files: ${results.deleted.length}`); console.log(`Updated components: ${results.updated.length}`); console.log(`Issues found: ${results.issues.length}`); if (results.issues.length === 0) { console.log(''); console.log('🎉 SUCCESS! Event management consolidation completed successfully!'); console.log(''); console.log('The following improvements have been achieved:'); console.log('• Reduced from 8+ fragmented classes to 1 unified system'); console.log('• Eliminated JavaScript dependencies where possible'); console.log('• Consolidated CSS and JS assets'); console.log('• Improved security with proper role validation'); console.log('• Added progressive enhancement features'); console.log('• Maintained backward compatibility with shortcodes'); console.log('• Centralized template management'); console.log('• Enhanced form validation and UX'); console.log(''); console.log('Next steps:'); console.log('1. Deploy to staging for testing'); console.log('2. Verify event creation and editing workflows'); console.log('3. Check performance improvements'); console.log('4. Validate with different user roles'); process.exit(0); } else { console.log(''); console.log('⚠️ Issues found during consolidation:'); results.issues.forEach(issue => { console.log(` • ${issue}`); }); console.log(''); console.log('Please address these issues before deployment.'); process.exit(1); }