upskill-event-manager/test-custom-form-direct.js
Ben 0b854a8c5b fix: Add template loading for custom event edit form
- Added missing template_include filter to HVAC_Custom_Event_Edit class
- Added loadTemplate method to handle template loading for rewrite rules
- Added support for hierarchical URL /trainer/event/edit in load_custom_templates
- Created WordPress page at /trainer/event/edit/ for custom form
- Assigned page-edit-event-custom.php template to the page

This ensures the custom event edit form loads correctly without JavaScript dependencies
2025-08-18 14:44:07 -03:00

172 lines
No EOL
6.2 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Direct test of custom event edit form
* Tests by navigating directly to a known event edit URL
*/
const { chromium } = require('playwright');
async function testCustomFormDirect() {
console.log('🔄 Testing Custom Event Edit Form (Direct Access)...\n');
const browser = await chromium.launch({
headless: false,
args: ['--disable-dev-shm-usage', '--no-sandbox']
});
const context = await browser.newContext({
viewport: { width: 1280, height: 720 }
});
const page = await context.newPage();
const baseUrl = process.env.UPSKILL_STAGING_URL || 'https://upskill-staging.measurequick.com';
try {
// Step 1: Login
console.log('1⃣ Logging in...');
await page.goto(`${baseUrl}/wp-login.php`);
await page.fill('#user_login', 'test_admin');
await page.fill('#user_pass', 'TestAdmin123!');
await page.click('#wp-submit');
// Wait for login to complete
await page.waitForTimeout(3000);
console.log('✅ Login submitted\n');
// Step 2: Navigate directly to edit page for a known event
// Using event ID 6161 from the previous tests
console.log('2⃣ Navigating directly to edit form...');
const editUrl = `${baseUrl}/trainer/event/edit/?event_id=6161`;
console.log(` URL: ${editUrl}`);
await page.goto(editUrl);
await page.waitForLoadState('networkidle');
// Step 3: Check what loaded
console.log('3⃣ Checking page content...\n');
const pageTitle = await page.title();
console.log(` Page Title: ${pageTitle}`);
// Check for custom form
const customForm = await page.$('.hvac-event-edit-wrapper');
if (customForm) {
console.log(' ✅ Custom form wrapper found');
} else {
console.log(' ❌ Custom form wrapper NOT found');
}
// Check for form element
const formElement = await page.$('form.hvac-event-form');
if (formElement) {
console.log(' ✅ Form element found');
} else {
console.log(' ❌ Form element NOT found');
}
// Check for TEC elements (should NOT be present)
const tecForm = await page.$('.tribe-community-events');
if (tecForm) {
console.log(' ⚠️ TEC form detected (should not be present)');
} else {
console.log(' ✅ No TEC dependencies found');
}
// Step 4: Check critical fields
console.log('\n4⃣ Checking form fields...\n');
const fields = [
{ name: 'Title', selector: '#post_title' },
{ name: 'Start Date', selector: '#EventStartDate' },
{ name: 'End Date', selector: '#EventEndDate' },
{ name: 'Event Cost', selector: '#EventCost' },
{ name: 'Venue Dropdown', selector: '#venue_id' },
{ name: 'Organizer Dropdown', selector: '#organizer_id' }
];
for (const field of fields) {
const element = await page.$(field.selector);
if (element) {
const value = await element.evaluate(el => el.value || '');
console.log(`${field.name}: Found (value: "${value.substring(0, 30)}${value.length > 30 ? '...' : ''}")`);
} else {
console.log(`${field.name}: NOT FOUND`);
}
}
// Step 5: Test saving
console.log('\n5⃣ Testing form submission...\n');
const titleField = await page.$('#post_title');
if (titleField) {
const currentTitle = await titleField.evaluate(el => el.value);
const newTitle = `${currentTitle} - Test ${Date.now()}`;
await page.fill('#post_title', newTitle);
console.log(` Updated title to: ${newTitle}`);
// Find and click save button
const saveButton = await page.$('button[type="submit"]');
if (saveButton) {
console.log(' Clicking save button...');
await saveButton.click();
// Wait for save
await page.waitForTimeout(3000);
// Check for success
const successMsg = await page.$('.hvac-notice-success');
if (successMsg) {
console.log(' ✅ Success message displayed!');
} else {
console.log(' ⚠️ No success message found');
}
// Check if title persisted
const savedTitle = await page.$eval('#post_title', el => el.value).catch(() => '');
if (savedTitle === newTitle) {
console.log(' ✅ Title change persisted!');
} else {
console.log(' ❌ Title did not persist');
}
} else {
console.log(' ❌ Save button not found');
}
}
console.log('\n✅ Test Complete!');
} catch (error) {
console.error('\n❌ Test failed:', error.message);
// Take screenshot
await page.screenshot({
path: `custom-form-error-${Date.now()}.png`,
fullPage: true
});
console.log('📸 Screenshot saved');
// Get page content for debugging
const content = await page.content();
if (content.includes('404') || content.includes('Not Found')) {
console.log('⚠️ Page returned 404 - form page may not exist');
}
if (content.includes('Access Denied') || content.includes('not authorized')) {
console.log('⚠️ Access denied - check user permissions');
}
throw error;
} finally {
await browser.close();
}
}
// Run test
testCustomFormDirect()
.then(() => {
console.log('\n🎉 Direct test passed!');
process.exit(0);
})
.catch(error => {
console.error('\n💥 Direct test failed:', error);
process.exit(1);
});