- 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>
		
			
				
	
	
		
			97 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			No EOL
		
	
	
		
			4.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | |
| 
 | |
| async function testProfileDebug() {
 | |
|     console.log('🔍 TESTING PROFILE SYSTEM COMPONENTS');
 | |
|     console.log('================================================================================');
 | |
|     
 | |
|     const browser = await chromium.launch({ headless: false });
 | |
|     const context = await browser.newContext();
 | |
|     const page = await context.newPage();
 | |
|     
 | |
|     try {
 | |
|         // Login as admin to access WP admin
 | |
|         console.log('📝 Logging in as admin...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
 | |
|         await page.fill('#user_login', 'joe@measurequick.com');
 | |
|         await page.fill('#user_pass', 'VNL8TCd#o^L4');
 | |
|         await page.click('#wp-submit');
 | |
|         await page.waitForURL('**/wp-admin/**');
 | |
|         console.log('✅ Admin login successful');
 | |
|         
 | |
|         // Check if trainer_profile post type exists
 | |
|         console.log('🔍 Checking trainer_profile post type...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-admin/edit.php?post_type=trainer_profile');
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         
 | |
|         const postTypeTitle = await page.title();
 | |
|         console.log(`📄 Post type page title: ${postTypeTitle}`);
 | |
|         
 | |
|         const profileCount = await page.locator('.wp-list-table tbody tr:not(.no-items)').count();
 | |
|         console.log(`📊 Trainer profiles found: ${profileCount}`);
 | |
|         
 | |
|         if (profileCount > 0) {
 | |
|             const firstProfile = await page.locator('.wp-list-table tbody tr:first-child .row-title').first();
 | |
|             const profileTitle = await firstProfile.textContent();
 | |
|             console.log(`👤 First profile: ${profileTitle}`);
 | |
|             // Click to edit first profile
 | |
|             await firstProfile.click();
 | |
|             await page.waitForLoadState('networkidle');
 | |
|             const editTitle = await page.title();
 | |
|             console.log(`✏️ Edit profile title: ${editTitle}`);
 | |
|             
 | |
|             // Check meta fields
 | |
|             const hasMetaFields = await page.locator('#postcustom').count() > 0;
 | |
|             console.log(`📝 Has meta fields: ${hasMetaFields}`);
 | |
|         }
 | |
|         
 | |
|         await page.screenshot({ path: 'admin-profile-debug.png', fullPage: true });
 | |
|         
 | |
|         // Now test as trainer
 | |
|         console.log('🔄 Switching to trainer login...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-login.php?action=logout');
 | |
|         await page.click('a[href*="logout"]').catch(() => {}); // Confirm logout if needed
 | |
|         
 | |
|         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/**');
 | |
|         console.log('✅ Trainer login successful');
 | |
|         
 | |
|         // Test profile page with error logging
 | |
|         console.log('🔍 Testing profile page with console logging...');
 | |
|         
 | |
|         page.on('console', msg => console.log('🌐 Browser Console:', msg.text()));
 | |
|         page.on('pageerror', err => console.log('❌ Page Error:', err.message));
 | |
|         
 | |
|         await page.goto('https://upskill-staging.measurequick.com/trainer/profile/');
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         
 | |
|         // Check for specific error messages or debug info
 | |
|         const hasErrorMessages = await page.evaluate(() => {
 | |
|             return {
 | |
|                 hasError: document.body.innerText.includes('Fatal error') || 
 | |
|                          document.body.innerText.includes('Warning:') ||
 | |
|                          document.body.innerText.includes('Notice:'),
 | |
|                 hasDebugInfo: document.body.innerText.includes('debug') ||
 | |
|                              document.body.innerText.includes('Query Monitor'),
 | |
|                 pageContent: document.body.innerText.slice(0, 500)
 | |
|             };
 | |
|         });
 | |
|         
 | |
|         console.log('🔍 Error analysis:', hasErrorMessages);
 | |
|         
 | |
|         await page.screenshot({ path: 'trainer-profile-error-debug.png', fullPage: true });
 | |
|         
 | |
|         console.log('================================================================================');
 | |
|         console.log('🎯 PROFILE DEBUG COMPLETE');
 | |
|         
 | |
|     } catch (error) {
 | |
|         console.error('❌ Error during profile debug:', error);
 | |
|         await page.screenshot({ path: 'profile-debug-error.png', fullPage: true });
 | |
|     } finally {
 | |
|         await browser.close();
 | |
|     }
 | |
| }
 | |
| 
 | |
| testProfileDebug(); |