upskill-event-manager/test-manage-event-fixes.js
bengizmo 993a820a84 feat: Add comprehensive development artifacts to repository
- Add 26 documentation files including test reports, deployment guides, and troubleshooting documentation
- Include 3 CSV data files for trainer imports and user registration tracking
- Add 43 JavaScript test files covering mobile optimization, Safari compatibility, and E2E testing
- Include 18 PHP utility files for debugging, geocoding, and data analysis
- Add 12 shell scripts for deployment verification, user management, and database operations
- Update .gitignore with whitelist patterns for development files, documentation, and CSV data

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

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

136 lines
No EOL
5.7 KiB
JavaScript

const { chromium } = require('playwright');
async function testManageEventFixes() {
const browser = await chromium.launch({ headless: false });
const page = await browser.newContext().then(ctx => ctx.newPage());
console.log('=== Testing Manage Event Page Fixes ===\n');
// Login as trainer
console.log('1. Logging in...');
await page.goto('https://upskill-staging.measurequick.com/training-login/');
await page.fill('#user_login', 'ben+test44@measurequick.com');
await page.fill('#user_pass', 'MQtrainer2024!');
await page.locator('input[type="submit"], #wp-submit').first().click();
// Wait for navigation to complete (should go to dashboard after login)
await page.waitForURL('**/trainer/dashboard/**', { timeout: 10000 }).catch(() => {
console.log(' - Login may have failed, continuing anyway...');
});
await page.waitForLoadState('networkidle');
// Go to manage event page
console.log('2. Navigating to manage event page...');
await page.goto('https://upskill-staging.measurequick.com/trainer/event/manage/');
await page.waitForLoadState('networkidle');
// Wait a bit more to ensure page is fully loaded
await page.waitForTimeout(2000);
// Check if we're on the right page
const currentURL = page.url();
console.log(' - Current URL:', currentURL);
if (!currentURL.includes('trainer/event/manage')) {
console.log(' ❌ WARNING: Not on manage event page! May have been redirected.');
}
// Check for duplicate navigation
console.log('\n3. Checking for duplicate navigation...');
const navSections = await page.locator('.hvac-dashboard-nav').count();
console.log(` - Navigation sections found: ${navSections}`);
if (navSections > 1) {
console.log(' ❌ FAIL: Duplicate navigation detected!');
} else {
console.log(' ✅ PASS: No duplicate navigation');
}
// Check CSS files
console.log('\n4. Checking CSS files...');
const cssInfo = await page.evaluate(() => {
const cssFiles = Array.from(document.querySelectorAll('link[rel="stylesheet"]'))
.map(link => link.href)
.filter(href => href.includes('hvac'));
return {
files: cssFiles.map(url => url.split('/').pop()),
hasDashboardCSS: cssFiles.some(f => f.includes('hvac-dashboard.css')),
hasLayoutCSS: cssFiles.some(f => f.includes('hvac-layout.css')),
hasPageTemplatesCSS: cssFiles.some(f => f.includes('hvac-page-templates.css'))
};
});
console.log(' - CSS files:', cssInfo.files.join(', '));
console.log(` - Has dashboard CSS: ${cssInfo.hasDashboardCSS ? '✅' : '❌'}`);
console.log(` - Has layout CSS: ${cssInfo.hasLayoutCSS ? '✅' : '❌'}`);
console.log(` - Has page templates CSS: ${cssInfo.hasPageTemplatesCSS ? '✅' : '❌'}`);
// Check body classes
console.log('\n5. Checking body classes...');
const bodyClasses = await page.evaluate(() => document.body.className);
console.log(' - Body classes:', bodyClasses);
const hasPluginClass = bodyClasses.includes('hvac-plugin-page');
console.log(` - Has hvac-plugin-page class: ${hasPluginClass ? '✅' : '❌'}`);
// Check layout constraints
console.log('\n6. Checking layout constraints...');
const layoutInfo = await page.evaluate(() => {
const container = document.querySelector('.ast-container') ||
document.querySelector('.container') ||
document.querySelector('.site-content');
if (!container) return { error: 'No container found' };
const styles = window.getComputedStyle(container);
const rect = container.getBoundingClientRect();
return {
maxWidth: styles.maxWidth,
width: styles.width,
actualWidth: rect.width,
padding: styles.padding,
boxSizing: styles.boxSizing
};
});
console.log(' - Container max-width:', layoutInfo.maxWidth);
console.log(' - Container width:', layoutInfo.width);
console.log(' - Actual width:', layoutInfo.actualWidth + 'px');
console.log(' - Padding:', layoutInfo.padding);
console.log(' - Box sizing:', layoutInfo.boxSizing);
const isWidthCorrect = layoutInfo.actualWidth <= 1200 || layoutInfo.maxWidth === '1200px';
console.log(` - Width constraint (≤1200px): ${isWidthCorrect ? '✅' : '❌'}`);
// Check for form content
console.log('\n7. Checking form content...');
const hasForm = await page.locator('.tribe-community-events, .tribe-events-community').first().isVisible().catch(() => false);
const hasContent = await page.locator('.hvac-event-manage-header').isVisible().catch(() => false);
console.log(` - Has event form: ${hasForm ? '✅' : '❌'}`);
console.log(` - Has header content: ${hasContent ? '✅' : '❌'}`);
// Take screenshot
await page.screenshot({
path: 'manage-event-fixes-test.png',
fullPage: false
});
console.log('\n8. Screenshot saved as manage-event-fixes-test.png');
// Summary
console.log('\n=== Test Summary ===');
const allPassed = navSections <= 1 &&
cssInfo.hasDashboardCSS &&
cssInfo.hasLayoutCSS &&
hasPluginClass &&
isWidthCorrect &&
(hasForm || hasContent);
if (allPassed) {
console.log('✅ All tests passed!');
} else {
console.log('❌ Some tests failed. Please review the results above.');
}
await browser.close();
}
testManageEventFixes().catch(console.error);