upskill-event-manager/test-trainer-features.js
bengizmo 993a820a84 feat: Add comprehensive development artifacts to repository
- 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>
2025-08-11 12:26:11 -03:00

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);