upskill-event-manager/test-manage-event-form.js
Ben 0f94a42f15 fix: enable TEC event edit field population for manage event page
- Re-enabled HVAC_Event_Edit_Comprehensive class initialization
- Added proper file includes for event edit classes
- Updated JavaScript to wait for TEC form to fully load via AJAX
- Fixed field selectors to match actual form structure
- Increased timeouts to handle AJAX form rendering
- Prioritized correct selectors for form fields

The comprehensive fix now properly loads event data and populates fields
when editing events from the trainer dashboard.

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 13:49:09 -03:00

140 lines
No EOL
5.2 KiB
JavaScript
Executable file

#!/usr/bin/env node
const { chromium } = require('@playwright/test');
process.env.DISPLAY = ':0';
(async () => {
console.log('Testing manage event form population...\n');
const browser = await chromium.launch({
headless: true,
args: ['--no-sandbox']
});
const page = await browser.newPage();
try {
// Login
console.log('1. Logging in...');
await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
await page.fill('#user_login', 'test_admin');
await page.fill('#user_pass', 'TestAdmin2025!');
await page.click('#wp-submit');
await page.waitForTimeout(3000);
// Go to manage event page with event_id
console.log('2. Going to manage event page with event_id=6161...');
await page.goto('https://upskill-staging.measurequick.com/trainer/event/manage/?event_id=6161');
await page.waitForLoadState('networkidle');
// Check if hvac_event_comprehensive object exists
const hasComprehensiveData = await page.evaluate(() => {
return typeof hvac_event_comprehensive !== 'undefined';
});
console.log('\n3. Checking for comprehensive data object:');
console.log(' Has hvac_event_comprehensive:', hasComprehensiveData);
if (hasComprehensiveData) {
const eventData = await page.evaluate(() => hvac_event_comprehensive);
console.log('\n4. Event data structure:');
console.log(' Event ID:', eventData.event_id);
console.log(' Has event_data:', !!eventData.event_data);
if (eventData.event_data) {
console.log(' Core data:', eventData.event_data.core);
console.log(' Venue data:', eventData.event_data.venue);
console.log(' Organizer data:', eventData.event_data.organizer);
}
}
// Check actual form fields
console.log('\n5. Checking form fields:');
const fields = await page.evaluate(() => {
const results = {};
// Try multiple selectors for title
const titleSelectors = [
'#title',
'input[name="post_title"]',
'#event-title',
'input[name="EventTitle"]'
];
for (const selector of titleSelectors) {
const field = document.querySelector(selector);
if (field) {
results.title = {
found: true,
selector: selector,
value: field.value
};
break;
}
}
if (!results.title) {
results.title = { found: false };
}
// Try multiple selectors for description
const descSelectors = [
'#description',
'textarea[name="post_content"]',
'#event-description',
'textarea[name="EventDescription"]'
];
for (const selector of descSelectors) {
const field = document.querySelector(selector);
if (field) {
results.description = {
found: true,
selector: selector,
value: field.value
};
break;
}
}
if (!results.description) {
results.description = { found: false };
}
// Check for TEC shortcode
const shortcodeDiv = document.querySelector('[data-tribe-shortcode]');
results.hasTECShortcode = !!shortcodeDiv;
// Check for any tribe forms
const tribeForms = document.querySelectorAll('form[id*="tribe"], form[class*="tribe"]');
results.tribeForms = tribeForms.length;
return results;
});
console.log(' Title field:', fields.title);
console.log(' Description field:', fields.description);
console.log(' Has TEC shortcode:', fields.hasTECShortcode);
console.log(' Tribe forms found:', fields.tribeForms);
// Check if the comprehensive JS ran
console.log('\n6. Checking if population script ran:');
const populationStatus = await page.evaluate(() => {
// Check if there's any indication the script tried to run
const notifications = document.querySelectorAll('.hvac-field-notification');
return {
notifications: notifications.length,
consoleErrors: window.hvacErrors || []
};
});
console.log(' Field notifications:', populationStatus.notifications);
} catch (error) {
console.error('Error:', error.message);
} finally {
console.log('\nKeeping browser open for 10 seconds...');
await page.waitForTimeout(10000);
await browser.close();
}
})();