upskill-event-manager/tests/verify-docker-environment.js
ben c6b871c946
Some checks are pending
HVAC Plugin CI/CD Pipeline / Code Quality & Standards (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Unit Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Security Analysis (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Integration Tests (push) Waiting to run
HVAC Plugin CI/CD Pipeline / Deploy to Staging (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Deploy to Production (push) Blocked by required conditions
HVAC Plugin CI/CD Pipeline / Notification (push) Blocked by required conditions
Security Monitoring & Compliance / Security Compliance Validation (push) Waiting to run
Security Monitoring & Compliance / Dependency Vulnerability Scan (push) Waiting to run
Security Monitoring & Compliance / Secrets & Credential Scan (push) Waiting to run
Security Monitoring & Compliance / WordPress Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Static Code Security Analysis (push) Waiting to run
Security Monitoring & Compliance / Security Summary Report (push) Blocked by required conditions
Security Monitoring & Compliance / Security Team Notification (push) Blocked by required conditions
feat: enhance Docker testing infrastructure and modernize test framework
- Add Docker plugin management script for staging integration
- Implement Docker environment configuration template and verification
- Add comprehensive Docker environment status documentation
- Enhance master trainer test suite with certificate diagnostics and profile management
- Extend test framework page objects with new navigation methods
- Update gitignore patterns to prevent temporary test files from commits
- Configure Claude permissions for Docker test execution

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-30 19:03:17 -03:00

156 lines
No EOL
5.8 KiB
JavaScript
Executable file

#!/usr/bin/env node
/**
* Quick Docker Environment Verification Script
* Tests basic functionality of Docker WordPress setup
*/
const { chromium } = require('playwright');
// Configuration
const CONFIG = {
baseURL: process.env.BASE_URL || 'http://localhost:8080',
headless: process.env.HEADLESS !== 'false',
timeout: 30000,
};
console.log('🔍 HVAC Docker Environment Verification');
console.log('========================================');
console.log(`📍 Target: ${CONFIG.baseURL}`);
console.log(`🖥️ Mode: ${CONFIG.headless ? 'Headless' : 'Headed'}`);
console.log('========================================');
async function verifyEnvironment() {
const browser = await chromium.launch({
headless: CONFIG.headless,
timeout: CONFIG.timeout
});
const context = await browser.newContext();
const page = await context.newPage();
try {
// Test 1: Basic WordPress accessibility
console.log('🧪 Test 1: WordPress Accessibility...');
await page.goto(CONFIG.baseURL, { timeout: CONFIG.timeout });
const title = await page.title();
console.log(`✅ WordPress accessible - Title: ${title}`);
// Test 2: Admin area accessibility
console.log('🧪 Test 2: Admin Area...');
await page.goto(`${CONFIG.baseURL}/wp-admin/`, { timeout: CONFIG.timeout });
// Should see login form or dashboard
const hasLogin = await page.locator('#loginform').isVisible().catch(() => false);
const hasAdminBar = await page.locator('#wpadminbar').isVisible().catch(() => false);
if (hasLogin || hasAdminBar) {
console.log('✅ Admin area accessible');
} else {
console.log('⚠️ Admin area response unexpected');
}
// Test 3: Plugin check
console.log('🧪 Test 3: HVAC Plugin Check...');
await page.goto(`${CONFIG.baseURL}/wp-admin/plugins.php`, { timeout: CONFIG.timeout });
// Look for HVAC plugin in page content
const content = await page.content();
const hasHVACPlugin = content.includes('hvac-community-events') || content.includes('HVAC Community Events');
if (hasHVACPlugin) {
console.log('✅ HVAC plugin detected');
} else {
console.log('⚠️ HVAC plugin not detected in plugins page');
}
// Test 4: Try HVAC pages
console.log('🧪 Test 4: HVAC Pages...');
const hvacPages = [
'/trainer/dashboard/',
'/master-trainer/master-dashboard/',
'/training-login/'
];
for (const pagePath of hvacPages) {
try {
const response = await page.goto(`${CONFIG.baseURL}${pagePath}`, {
timeout: 10000,
waitUntil: 'networkidle'
});
if (response.status() === 200) {
console.log(`${pagePath} - accessible`);
} else if (response.status() === 302 || response.status() === 301) {
console.log(`➡️ ${pagePath} - redirects (likely auth required)`);
} else {
console.log(`⚠️ ${pagePath} - Status: ${response.status()}`);
}
} catch (error) {
console.log(`${pagePath} - Error: ${error.message.substring(0, 50)}...`);
}
}
// Test 5: Login test with test user
console.log('🧪 Test 5: Test User Login...');
try {
await page.goto(`${CONFIG.baseURL}/wp-login.php`, { timeout: CONFIG.timeout });
// Fill login form
await page.fill('#user_login', 'test_master');
await page.fill('#user_pass', 'TestMaster123!');
await page.click('#wp-submit');
await page.waitForLoadState('networkidle', { timeout: 10000 });
const currentUrl = page.url();
if (currentUrl.includes('wp-admin')) {
console.log('✅ Test user login successful');
// Try accessing master trainer dashboard while logged in
await page.goto(`${CONFIG.baseURL}/master-trainer/master-dashboard/`, { timeout: 10000 });
const pageTitle = await page.title();
console.log(`📊 Master Dashboard - Title: ${pageTitle}`);
} else {
console.log('⚠️ Login may have failed - not redirected to admin');
}
} catch (error) {
console.log(`❌ Login test failed: ${error.message.substring(0, 50)}...`);
}
console.log('\n🏁 Environment Verification Complete');
console.log('====================================');
console.log('💡 Status: Docker environment is set up');
console.log(`📋 Admin Access: ${CONFIG.baseURL}/wp-admin/ (admin/admin123)`);
console.log(`👤 Test User: ${CONFIG.baseURL}/wp-admin/ (test_master/TestMaster123!)`);
console.log(`📊 PhpMyAdmin: http://localhost:8081`);
console.log(`📧 MailHog: http://localhost:8025`);
return true;
} catch (error) {
console.log(`❌ Verification failed: ${error.message}`);
return false;
} finally {
await browser.close();
}
}
// Run verification
verifyEnvironment()
.then(success => {
if (success) {
console.log('\n✅ Environment verification passed');
process.exit(0);
} else {
console.log('\n❌ Environment verification failed');
process.exit(1);
}
})
.catch(error => {
console.error(`❌ Fatal error: ${error.message}`);
process.exit(1);
});