- 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>
		
			
				
	
	
		
			80 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			No EOL
		
	
	
		
			3.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { chromium } = require('playwright');
 | |
| const fs = require('fs');
 | |
| const path = require('path');
 | |
| 
 | |
| (async () => {
 | |
|     const browser = await chromium.launch();
 | |
|     const context = await browser.newContext();
 | |
|     const page = await context.newPage();
 | |
|     
 | |
|     // Create screenshots directory
 | |
|     const screenshotDir = path.join(__dirname, '../screenshots/authenticated-pages');
 | |
|     if (!fs.existsSync(screenshotDir)) {
 | |
|         fs.mkdirSync(screenshotDir, { recursive: true });
 | |
|     }
 | |
|     
 | |
|     const baseUrl = 'https://upskill-staging.measurequick.com';
 | |
|     
 | |
|     console.log('Logging in as test trainer...');
 | |
|     
 | |
|     // Navigate to login page
 | |
|     await page.goto(baseUrl + '/training-login/', { waitUntil: 'networkidle' });
 | |
|     
 | |
|     // Fill login form
 | |
|     await page.fill('input[name="log"]', 'test_trainer');
 | |
|     await page.fill('input[name="pwd"]', 'TestPass123!');
 | |
|     await page.click('input[type="submit"]');
 | |
|     
 | |
|     // Wait for redirect
 | |
|     await page.waitForURL('**/trainer/dashboard/**', { timeout: 10000 }).catch(() => {
 | |
|         console.log('Did not redirect to dashboard - checking current page');
 | |
|     });
 | |
|     
 | |
|     // Test authenticated pages
 | |
|     const testPages = [
 | |
|         { name: 'trainer-dashboard', url: '/trainer/dashboard/', expectedContent: 'Welcome' },
 | |
|         { name: 'certificate-reports', url: '/trainer/certificate-reports/', expectedContent: 'Certificate Reports' },
 | |
|         { name: 'generate-certificates', url: '/trainer/generate-certificates/', expectedContent: 'Generate Certificates' },
 | |
|         { name: 'email-attendees', url: '/trainer/email-attendees/', expectedContent: 'Email Attendees' },
 | |
|         { name: 'trainer-profile', url: '/trainer/my-profile/', expectedContent: 'Profile' }
 | |
|     ];
 | |
|     
 | |
|     console.log('\nTesting authenticated pages...');
 | |
|     
 | |
|     for (const testPage of testPages) {
 | |
|         console.log(`\nTesting ${testPage.name}...`);
 | |
|         
 | |
|         try {
 | |
|             await page.goto(baseUrl + testPage.url, { waitUntil: 'networkidle' });
 | |
|             
 | |
|             // Check for expected content
 | |
|             const bodyText = await page.textContent('body');
 | |
|             if (bodyText.includes(testPage.expectedContent)) {
 | |
|                 console.log(`✓ ${testPage.name} - Content found: "${testPage.expectedContent}"`);
 | |
|             } else {
 | |
|                 console.log(`✗ ${testPage.name} - Expected content not found`);
 | |
|             }
 | |
|             
 | |
|             // Check if page has sidebar (indicates template issue)
 | |
|             const hasSidebar = await page.locator('.widget-area, .sidebar, #secondary').count();
 | |
|             if (hasSidebar > 0) {
 | |
|                 console.log(`⚠️  ${testPage.name} - Has sidebar (possible template issue)`);
 | |
|             } else {
 | |
|                 console.log(`✓ ${testPage.name} - No sidebar (template working)`);
 | |
|             }
 | |
|             
 | |
|             // Take screenshot
 | |
|             await page.screenshot({ 
 | |
|                 path: path.join(screenshotDir, `${testPage.name}.png`),
 | |
|                 fullPage: true
 | |
|             });
 | |
|             
 | |
|         } catch (error) {
 | |
|             console.log(`✗ ${testPage.name} - Error: ${error.message}`);
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     console.log('\nVerification complete. Screenshots saved to:', screenshotDir);
 | |
|     
 | |
|     await browser.close();
 | |
| })(); |