'BasicTest', 'type' => 'basic', 'description' => 'A basic test module', 'fields' => [], 'features' => ['views', 'assets'], 'submodules' => false, 'middleware' => false ], [ 'name' => 'CrudTest', 'type' => 'crud', 'description' => 'A CRUD test module', 'fields' => [ ['name' => 'title', 'type' => 'string', 'required' => true], ['name' => 'price', 'type' => 'decimal', 'required' => true], ['name' => 'active', 'type' => 'boolean', 'required' => false] ], 'features' => ['views', 'assets', 'api', 'search'], 'submodules' => true, 'middleware' => true ], [ 'name' => 'ApiTest', 'type' => 'api', 'description' => 'An API test module', 'fields' => [ ['name' => 'endpoint', 'type' => 'string', 'required' => true] ], 'features' => ['api'], 'submodules' => false, 'middleware' => true ] ]; $results = []; foreach ($testConfigs as $index => $config) { echo "๐Ÿ“‹ Test " . ($index + 1) . ": {$config['name']} ({$config['type']})\n"; echo str_repeat("-", 40) . "\n"; try { // Create configuration array $generatorConfig = [ 'name' => $config['name'], 'type' => $config['type'], 'description' => $config['description'], 'fields' => $config['fields'], 'use_middleware' => $config['middleware'], 'create_submodules' => $config['submodules'] ]; $generator = new \Tools\ModuleGeneratorEnhanced\ModuleGeneratorEnhanced($generatorConfig); // Generate module $result = $generator->generate(); if ($result) { echo "โœ… Module '{$config['name']}' generated successfully!\n"; $results[$config['name']] = 'PASS'; // Check if main files exist $moduleDir = "../../modules/{$config['name']}"; $requiredFiles = ['Controller.php', 'Model.php', 'View.php', 'routes/Routes.php']; foreach ($requiredFiles as $file) { if (file_exists("$moduleDir/$file")) { echo " โœ“ $file exists\n"; } else { echo " โœ— $file missing\n"; $results[$config['name']] = 'PARTIAL'; } } } else { echo "โŒ Module '{$config['name']}' generation failed!\n"; $results[$config['name']] = 'FAIL'; } } catch (Exception $e) { echo "โŒ Error: " . $e->getMessage() . "\n"; $results[$config['name']] = 'ERROR'; } echo "\n"; } // Summary echo str_repeat("=", 60) . "\n"; echo "๐Ÿ“Š Test Results Summary:\n"; echo str_repeat("=", 60) . "\n"; foreach ($results as $module => $status) { $icon = match($status) { 'PASS' => 'โœ…', 'PARTIAL' => 'โš ๏ธ', 'FAIL' => 'โŒ', 'ERROR' => '๐Ÿ’ฅ' }; echo "$icon $module: $status\n"; } $passCount = count(array_filter($results, fn($status) => $status === 'PASS')); $totalCount = count($results); echo "\n๐Ÿ“ˆ Overall Results: $passCount/$totalCount tests passed\n"; if ($passCount === $totalCount) { echo "๐ŸŽ‰ All tests passed! Enhanced Module Generator is ready for production use.\n"; } else { echo "โš ๏ธ Some tests failed. Please review the results above.\n"; } echo "\n๐Ÿ”„ To clean up test modules, run:\n"; echo "Remove-Item -Path '../../modules/BasicTest' -Recurse -Force\n"; echo "Remove-Item -Path '../../modules/CrudTest' -Recurse -Force\n"; echo "Remove-Item -Path '../../modules/ApiTest' -Recurse -Force\n"; ?>