- 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>
		
			
				
	
	
		
			106 lines
		
	
	
		
			No EOL
		
	
	
		
			5.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			No EOL
		
	
	
		
			5.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | |
| 
 | |
| async function testMasterTrainerSimple() {
 | |
|     console.log('🔍 TESTING SIMPLIFIED MASTER TRAINER TEMPLATE');
 | |
|     console.log('================================================================================');
 | |
|     
 | |
|     const browser = await chromium.launch({ headless: false });
 | |
|     const context = await browser.newContext();
 | |
|     const page = await context.newPage();
 | |
|     
 | |
|     try {
 | |
|         // Login as master trainer
 | |
|         console.log('📝 Logging in as master trainer...');
 | |
|         await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
 | |
|         await page.fill('#user_login', 'JoeMedosch@gmail.com');
 | |
|         await page.fill('#user_pass', 'JoeTrainer2025@');
 | |
|         await page.click('#wp-submit');
 | |
|         await page.waitForURL('**/master-trainer/master-dashboard/**', { timeout: 15000 });
 | |
|         console.log('✅ Master trainer login successful');
 | |
|         
 | |
|         // Test the simplified template
 | |
|         console.log('🔍 Testing simplified master trainer template...');
 | |
|         const testUrl = 'https://upskill-staging.measurequick.com/master-trainer/edit-trainer-profile?user_id=42';
 | |
|         await page.goto(testUrl);
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         
 | |
|         const simpleTestResult = await page.evaluate(() => {
 | |
|             return {
 | |
|                 url: window.location.href,
 | |
|                 title: document.title,
 | |
|                 hasEditForm: document.querySelector('#hvac-master-profile-form') !== null,
 | |
|                 hasBasicFields: document.querySelectorAll('#trainer_first_name, #trainer_last_name, #trainer_display_name').length,
 | |
|                 hasCriticalError: document.body.innerText.includes('critical error'),
 | |
|                 hasProfileHeader: document.querySelector('.hvac-page-header h1') !== null,
 | |
|                 profileHeaderText: document.querySelector('.hvac-page-header h1')?.textContent || 'none',
 | |
|                 hasSaveButton: document.querySelector('button[type="submit"]') !== null,
 | |
|                 saveButtonText: document.querySelector('button[type="submit"]')?.textContent || 'none',
 | |
|                 hasFormFields: document.querySelectorAll('input, select, textarea').length,
 | |
|                 fieldValues: {
 | |
|                     firstName: document.querySelector('#trainer_first_name')?.value || 'none',
 | |
|                     lastName: document.querySelector('#trainer_last_name')?.value || 'none',
 | |
|                     displayName: document.querySelector('#trainer_display_name')?.value || 'none'
 | |
|                 },
 | |
|                 hasErrorMessages: document.body.innerText.includes('must be a master trainer') || 
 | |
|                                 document.body.innerText.includes('User not found') ||
 | |
|                                 document.body.innerText.includes('Profile management system is not available') ||
 | |
|                                 document.body.innerText.includes('No trainer profile found'),
 | |
|                 contentPreview: document.body.innerText.slice(0, 400).replace(/\\s+/g, ' ').trim()
 | |
|             };
 | |
|         });
 | |
|         
 | |
|         console.log('📊 Simplified template test results:', simpleTestResult);
 | |
|         
 | |
|         if (simpleTestResult.hasEditForm && !simpleTestResult.hasCriticalError) {
 | |
|             console.log('🎉 SUCCESS! Simplified template is working!');
 | |
|             console.log(`   ✅ Profile header: ${simpleTestResult.profileHeaderText}`);
 | |
|             console.log(`   ✅ Form fields: ${simpleTestResult.hasFormFields}`);
 | |
|             console.log(`   ✅ Save button: ${simpleTestResult.saveButtonText}`);
 | |
|             console.log(`   ✅ Field values: ${JSON.stringify(simpleTestResult.fieldValues)}`);
 | |
|             
 | |
|             // Test form interaction
 | |
|             console.log('🔍 Testing form interaction...');
 | |
|             
 | |
|             // Try clicking the save button
 | |
|             await page.click('button[type="submit"]');
 | |
|             await page.waitForTimeout(3000);
 | |
|             
 | |
|             const formTestResult = await page.evaluate(() => {
 | |
|                 const messagesDiv = document.getElementById('hvac-profile-messages');
 | |
|                 return {
 | |
|                     hasTestMessage: messagesDiv && messagesDiv.innerHTML.includes('Profile edit form is working'),
 | |
|                     messageContent: messagesDiv ? messagesDiv.textContent : 'none',
 | |
|                     saveButtonDisabled: document.querySelector('button[type="submit"]')?.disabled || false,
 | |
|                     saveButtonText: document.querySelector('button[type="submit"]')?.textContent || 'none'
 | |
|                 };
 | |
|             });
 | |
|             
 | |
|             console.log('📝 Form interaction test:', formTestResult);
 | |
|             
 | |
|             if (formTestResult.hasTestMessage) {
 | |
|                 console.log('✅ Form submission working - test message displayed!');
 | |
|             }
 | |
|             
 | |
|             await page.screenshot({ path: 'master-trainer-simple-success.png', fullPage: true });
 | |
|             
 | |
|         } else if (simpleTestResult.hasCriticalError) {
 | |
|             console.log('❌ Still has critical error even with simplified template');
 | |
|             await page.screenshot({ path: 'master-trainer-simple-error.png', fullPage: true });
 | |
|         } else if (simpleTestResult.hasErrorMessages) {
 | |
|             console.log('⚠️ Has error messages but no critical error');
 | |
|         } else {
 | |
|             console.log('⚠️ No form found - check content preview');
 | |
|         }
 | |
|         
 | |
|         console.log('================================================================================');
 | |
|         console.log('🎯 SIMPLIFIED MASTER TRAINER TEST COMPLETE');
 | |
|         
 | |
|     } catch (error) {
 | |
|         console.error('❌ Error during simplified master trainer test:', error);
 | |
|         await page.screenshot({ path: 'master-trainer-simple-test-error.png', fullPage: true });
 | |
|     } finally {
 | |
|         await browser.close();
 | |
|     }
 | |
| }
 | |
| 
 | |
| testMasterTrainerSimple(); |