- 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>
		
			
				
	
	
		
			92 lines
		
	
	
		
			No EOL
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			No EOL
		
	
	
		
			5.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | |
| 
 | |
| async function testTrainerProfileFix() {
 | |
|     console.log('🔍 TESTING TRAINER PROFILE TEMPLATE FIX');
 | |
|     console.log('================================================================================');
 | |
|     
 | |
|     const browser = await chromium.launch({ headless: false });
 | |
|     const context = await browser.newContext();
 | |
|     const page = await context.newPage();
 | |
|     
 | |
|     try {
 | |
|         // Login as regular trainer
 | |
|         console.log('📝 Logging in as regular trainer...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
 | |
|         await page.fill('#user_login', 'test_trainer');
 | |
|         await page.fill('#user_pass', 'TestTrainer123!');
 | |
|         await page.click('#wp-submit');
 | |
|         await page.waitForURL('**/trainer/dashboard/**', { timeout: 15000 });
 | |
|         console.log('✅ Regular trainer login successful');
 | |
|         
 | |
|         // Navigate to trainer profile page
 | |
|         console.log('🔍 Testing trainer profile page...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/trainer/profile/');
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         
 | |
|         const profileTestResult = await page.evaluate(() => {
 | |
|             return {
 | |
|                 url: window.location.href,
 | |
|                 title: document.title,
 | |
|                 hasNavigation: document.querySelector('.hvac-trainer-nav') !== null,
 | |
|                 hasTrainerMenu: document.querySelector('.hvac-trainer-menu') !== null,
 | |
|                 navItemsCount: document.querySelectorAll('.hvac-trainer-menu li').length,
 | |
|                 hasNavButtons: document.querySelectorAll('.hvac-nav-link').length,
 | |
|                 hasBreadcrumbs: document.querySelector('.hvac-breadcrumbs') !== null,
 | |
|                 hasProfileHeader: document.querySelector('.hvac-page-header h1') !== null,
 | |
|                 profileHeaderText: document.querySelector('.hvac-page-header h1')?.textContent || 'none',
 | |
|                 hasProfileSidebar: document.querySelector('.hvac-profile-sidebar') !== null,
 | |
|                 hasProfileMain: document.querySelector('.hvac-profile-main') !== null,
 | |
|                 hasProfileSections: document.querySelectorAll('.hvac-profile-section').length,
 | |
|                 hasStyledButtons: document.querySelectorAll('.hvac-button').length,
 | |
|                 hasPersonalInfo: document.body.innerText.includes('Personal Information'),
 | |
|                 hasCertificationInfo: document.body.innerText.includes('Certification Information'),
 | |
|                 hasProfilePhoto: document.querySelector('.hvac-profile-photo') !== null,
 | |
|                 hasProfileStats: document.querySelector('.hvac-profile-stats') !== null,
 | |
|                 hasInlineStyles: document.querySelector('style') !== null,
 | |
|                 contentPreview: document.body.innerText.slice(0, 500).replace(/\s+/g, ' ').trim()
 | |
|             };
 | |
|         });
 | |
|         
 | |
|         console.log('📊 Trainer profile test results:', profileTestResult);
 | |
|         
 | |
|         if (profileTestResult.hasNavigation && profileTestResult.hasProfileHeader) {
 | |
|             console.log('🎉 SUCCESS! Trainer profile template is now working!');
 | |
|             console.log(`   ✅ Navigation menu: ${profileTestResult.hasNavigation} (${profileTestResult.navItemsCount} items)`);  
 | |
|             console.log(`   ✅ Profile header: ${profileTestResult.profileHeaderText}`);
 | |
|             console.log(`   ✅ Profile sections: ${profileTestResult.hasProfileSections}`);
 | |
|             console.log(`   ✅ Breadcrumbs: ${profileTestResult.hasBreadcrumbs}`);
 | |
|             console.log(`   ✅ Sidebar: ${profileTestResult.hasProfileSidebar}`);
 | |
|             console.log(`   ✅ Inline styles: ${profileTestResult.hasInlineStyles}`);
 | |
|             
 | |
|             await page.screenshot({ path: 'trainer-profile-fixed-success.png', fullPage: true });
 | |
|             
 | |
|         } else {
 | |
|             console.log('❌ Still having issues with trainer profile template');
 | |
|             console.log(`   Navigation: ${profileTestResult.hasNavigation}`);
 | |
|             console.log(`   Profile header: ${profileTestResult.hasProfileHeader}`);
 | |
|             console.log(`   Content preview: ${profileTestResult.contentPreview}`);
 | |
|             
 | |
|             await page.screenshot({ path: 'trainer-profile-still-broken.png', fullPage: true });
 | |
|         }
 | |
|         
 | |
|         // Test the Edit Profile button/link
 | |
|         if (profileTestResult.hasStyledButtons > 0) {
 | |
|             console.log('🔍 Testing Edit Profile button...');
 | |
|             const editButton = await page.locator('a[href*="/profile/edit/"]').first();
 | |
|             if (await editButton.isVisible()) {
 | |
|                 console.log('✅ Edit Profile button is visible and clickable');
 | |
|             }
 | |
|         }
 | |
|         
 | |
|         console.log('================================================================================');
 | |
|         console.log('🎯 TRAINER PROFILE TEMPLATE FIX TEST COMPLETE');
 | |
|         
 | |
|     } catch (error) {
 | |
|         console.error('❌ Error during trainer profile test:', error);
 | |
|         await page.screenshot({ path: 'trainer-profile-test-error.png', fullPage: true });
 | |
|     } finally {
 | |
|         await browser.close();
 | |
|     }
 | |
| }
 | |
| 
 | |
| testTrainerProfileFix(); |