upskill-event-manager/test-docker-environment.js
Ben c3e7fe9140 feat: comprehensive HVAC plugin development framework and modernization
## Major Enhancements

### 🏗️ Architecture & Infrastructure
- Implement comprehensive Docker testing infrastructure with hermetic environment
- Add Forgejo Actions CI/CD pipeline for automated deployments
- Create Page Object Model (POM) testing architecture reducing test duplication by 90%
- Establish security-first development patterns with input validation and output escaping

### 🧪 Testing Framework Modernization
- Migrate 146+ tests from 80 duplicate files to centralized architecture
- Add comprehensive E2E test suites for all user roles and workflows
- Implement WordPress error detection with automatic site health monitoring
- Create robust browser lifecycle management with proper cleanup

### 📚 Documentation & Guides
- Add comprehensive development best practices guide
- Create detailed administrator setup documentation
- Establish user guides for trainers and master trainers
- Document security incident reports and migration guides

### 🔧 Core Plugin Features
- Enhance trainer profile management with certification system
- Improve find trainer functionality with advanced filtering
- Strengthen master trainer area with content management
- Add comprehensive venue and organizer management

### 🛡️ Security & Reliability
- Implement security-first patterns throughout codebase
- Add comprehensive input validation and output escaping
- Create secure credential management system
- Establish proper WordPress role-based access control

### 🎯 WordPress Integration
- Strengthen singleton pattern implementation across all classes
- Enhance template hierarchy with proper WordPress integration
- Improve page manager with hierarchical URL structure
- Add comprehensive shortcode and menu system

### 🔍 Developer Experience
- Add extensive debugging and troubleshooting tools
- Create comprehensive test data seeding scripts
- Implement proper error handling and logging
- Establish consistent code patterns and standards

### 📊 Performance & Optimization
- Optimize database queries and caching strategies
- Improve asset loading and script management
- Enhance template rendering performance
- Streamline user experience across all interfaces

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-29 11:26:10 -03:00

85 lines
No EOL
3.4 KiB
JavaScript

const { chromium } = require('playwright');
const path = require('path');
async function testDockerEnvironment() {
console.log('🚀 Testing Docker WordPress environment...');
const baseUrl = 'http://localhost:8080';
console.log('📍 Base URL:', baseUrl);
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
try {
console.log('🌐 Navigating to WordPress site...');
await page.goto(baseUrl, { timeout: 15000 });
const title = await page.title();
console.log('📄 Page title:', title);
// Check if it's a WordPress site
const isWordPress = await page.evaluate(() => {
return !!document.querySelector('meta[name="generator"][content*="WordPress"]') ||
!!document.querySelector('link[href*="wp-content"]') ||
typeof window.wp !== 'undefined';
});
console.log('🏥 WordPress detected:', isWordPress);
// Check for HVAC plugin signs
const hasHVAC = await page.evaluate(() => {
return document.body.innerHTML.includes('hvac') ||
document.body.innerHTML.includes('trainer') ||
document.querySelector('[class*="hvac"]') !== null ||
document.querySelector('[id*="hvac"]') !== null;
});
console.log('🔧 HVAC plugin signs:', hasHVAC);
// Take screenshot for inspection
await page.screenshot({ path: 'test-evidence/docker-homepage.png', fullPage: true });
console.log('📸 Homepage screenshot: test-evidence/docker-homepage.png');
// Try to access login page
const loginUrl = baseUrl + '/wp-login.php';
await page.goto(loginUrl, { timeout: 10000 });
const loginTitle = await page.title();
console.log('🔐 Login page title:', loginTitle);
await page.screenshot({ path: 'test-evidence/docker-login.png', fullPage: true });
console.log('📸 Login screenshot: test-evidence/docker-login.png');
// Try community login
try {
const communityLoginUrl = baseUrl + '/training-login/';
await page.goto(communityLoginUrl, { timeout: 10000 });
const communityTitle = await page.title();
console.log('👥 Community login title:', communityTitle);
await page.screenshot({ path: 'test-evidence/docker-community-login.png', fullPage: true });
console.log('📸 Community login screenshot: test-evidence/docker-community-login.png');
} catch (error) {
console.log('⚠️ Community login page not available:', error.message);
}
console.log('✅ Docker environment test completed successfully');
return true;
} catch (error) {
console.error('❌ Docker environment test failed:', error.message);
await page.screenshot({ path: 'test-evidence/docker-error.png', fullPage: true });
console.log('📸 Error screenshot: test-evidence/docker-error.png');
return false;
} finally {
await browser.close();
}
}
testDockerEnvironment()
.then(success => {
process.exit(success ? 0 : 1);
})
.catch(error => {
console.error('❌ Unexpected error:', error);
process.exit(1);
});