upskill-event-manager/test-login.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

93 lines
No EOL
3.4 KiB
JavaScript

const { chromium } = require('playwright');
const BASE_URL = 'https://upskill-staging.measurequick.com';
async function testLogin() {
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext({ viewport: { width: 1920, height: 1080 } });
const page = await context.newPage();
console.log('Testing login with new test user...\n');
try {
// Navigate to login page
console.log('1. Navigating to login page...');
await page.goto(`${BASE_URL}/training-login/`);
await page.waitForLoadState('networkidle');
// Check what login fields are available
const loginFormSelectors = [
'#user_login',
'#user_pass',
'#wp-submit',
'input[name="log"]',
'input[name="pwd"]'
];
console.log('2. Checking available form fields:');
for (const selector of loginFormSelectors) {
const exists = await page.locator(selector).count() > 0;
console.log(` ${selector}: ${exists ? '✓ FOUND' : '✗ NOT FOUND'}`);
}
// Take screenshot of login page
await page.screenshot({ path: 'screenshots/test-login-page.png' });
// Try to login using the most common selectors
console.log('\n3. Attempting login...');
// Try filling by name attribute first
const usernameInput = page.locator('input[name="log"]').or(page.locator('#user_login'));
const passwordInput = page.locator('input[name="pwd"]').or(page.locator('#user_pass'));
const submitButton = page.locator('#wp-submit').or(page.locator('button[type="submit"]'));
await usernameInput.fill('test_trainer');
await passwordInput.fill('TestTrainer123!');
await page.screenshot({ path: 'screenshots/test-login-filled.png' });
await submitButton.click();
console.log(' Login form submitted');
// Wait for navigation
console.log('4. Waiting for redirect...');
await page.waitForLoadState('networkidle');
await page.waitForTimeout(5000);
const currentUrl = page.url();
console.log(` Current URL: ${currentUrl}`);
// Check if we're logged in
if (currentUrl.includes('/trainer/') || currentUrl.includes('dashboard')) {
console.log(' ✓ Login successful!');
// Check for navigation and breadcrumbs
const hasNav = await page.locator('.hvac-trainer-nav').count() > 0;
const hasBreadcrumb = await page.locator('.hvac-breadcrumb').count() > 0;
console.log(`\n5. Checking page elements:`);
console.log(` Navigation menu: ${hasNav ? '✓ FOUND' : '✗ NOT FOUND'}`);
console.log(` Breadcrumbs: ${hasBreadcrumb ? '✓ FOUND' : '✗ NOT FOUND'}`);
await page.screenshot({ path: 'screenshots/test-login-success.png', fullPage: true });
} else {
console.log(' ✗ Login failed - still on login page');
// Check for error messages
const errorMessages = await page.locator('.error, .login-error, #login_error').allTextContents();
if (errorMessages.length > 0) {
console.log(' Error messages found:');
errorMessages.forEach(msg => console.log(` - ${msg.trim()}`));
}
await page.screenshot({ path: 'screenshots/test-login-failed.png' });
}
} catch (error) {
console.error('\nError during test:', error.message);
await page.screenshot({ path: 'screenshots/test-login-error.png' });
} finally {
await browser.close();
}
}
testLogin().catch(console.error);