- 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>
		
			
				
	
	
		
			117 lines
		
	
	
		
			No EOL
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			No EOL
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | |
| 
 | |
| const BASE_URL = 'https://upskill-staging.measurequick.com';
 | |
| 
 | |
| async function testTrainerFeatures() {
 | |
|   const browser = await chromium.launch({ headless: true });
 | |
|   const context = await browser.newContext({
 | |
|     viewport: { width: 1920, height: 1080 }
 | |
|   });
 | |
|   const page = await context.newPage();
 | |
|   
 | |
|   console.log('Starting trainer features test...');
 | |
|   
 | |
|   try {
 | |
|     // Test 1: Registration Form
 | |
|     console.log('\n1. Testing Registration Form...');
 | |
|     await page.goto(`${BASE_URL}/trainer-registration/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/01-registration-form-full.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test venue conditional fields
 | |
|     await page.click('input[name="create_venue"][value="yes"]');
 | |
|     await page.waitForTimeout(500);
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/02-venue-fields-visible.png' 
 | |
|     });
 | |
|     
 | |
|     await page.click('input[name="create_venue"][value="no"]');
 | |
|     await page.waitForTimeout(500);
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/03-venue-fields-hidden.png' 
 | |
|     });
 | |
|     
 | |
|     // Test 2: Login as trainer
 | |
|     console.log('\n2. Logging in as trainer...');
 | |
|     await page.goto(`${BASE_URL}/wp-login.php`);
 | |
|     await page.fill('#user_login', 'test_trainer');
 | |
|     await page.fill('#user_pass', 'password123');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/04-login-page.png' 
 | |
|     });
 | |
|     await page.click('#wp-submit');
 | |
|     await page.waitForURL('**/wp-admin/**');
 | |
|     
 | |
|     // Test 3: Venues List
 | |
|     console.log('\n3. Testing Venues List...');
 | |
|     await page.goto(`${BASE_URL}/trainer/venue/list/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/05-venues-list.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test 4: Create Venue
 | |
|     console.log('\n4. Testing Create Venue...');
 | |
|     await page.goto(`${BASE_URL}/trainer/venue/manage/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/06-venue-create-form.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test 5: Profile View
 | |
|     console.log('\n5. Testing Profile View...');
 | |
|     await page.goto(`${BASE_URL}/trainer/profile/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/07-profile-view.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test 6: Profile Edit
 | |
|     console.log('\n6. Testing Profile Edit...');
 | |
|     await page.goto(`${BASE_URL}/trainer/profile/edit/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/08-profile-edit.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test 7: Organizers List
 | |
|     console.log('\n7. Testing Organizers List...');
 | |
|     await page.goto(`${BASE_URL}/trainer/organizer/list/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/09-organizers-list.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     // Test 8: Create Organizer
 | |
|     console.log('\n8. Testing Create Organizer...');
 | |
|     await page.goto(`${BASE_URL}/trainer/organizer/manage/`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/10-organizer-create-form.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|     
 | |
|     console.log('\nAll tests completed successfully!');
 | |
|     console.log('Screenshots saved in screenshots/ directory');
 | |
|     
 | |
|   } catch (error) {
 | |
|     console.error('Test failed:', error);
 | |
|     await page.screenshot({ 
 | |
|       path: 'screenshots/error-screenshot.png', 
 | |
|       fullPage: true 
 | |
|     });
 | |
|   } finally {
 | |
|     await browser.close();
 | |
|   }
 | |
| }
 | |
| 
 | |
| // Run the tests
 | |
| testTrainerFeatures().catch(console.error); |