import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config'; import { test, expect } from '@playwright/test'; // STAGING_URL is now imported from config test('Debug Event Submission - Direct URL', async ({ page }) => { // Login await page.goto(PATHS.login); await page.fill('#user_login', 'test_trainer'); await page.fill('#user_pass', 'Test123!'); await page.click('#wp-submit'); await page.waitForLoadState('networkidle'); // Try direct navigation to manage-event page await page.goto(`${STAGING_URL}/manage-event/`); await page.waitForLoadState('networkidle'); // Check if we're on the right page const pageTitle = await page.title(); console.log('Page title:', pageTitle); const currentUrl = page.url(); console.log('Current URL:', currentUrl); // Screenshot the page await page.screenshot({ path: 'test-results/screenshots/manage-event-page.png' }); // Check for form elements const titleFieldVisible = await page.locator('#post_title, input[name="post_title"]').isVisible().catch(() => false); const submitButtonVisible = await page.locator('input[value="Submit Event"], button:has-text("Submit Event")').isVisible().catch(() => false); console.log('Title field visible:', titleFieldVisible); console.log('Submit button visible:', submitButtonVisible); if (titleFieldVisible && submitButtonVisible) { // Fill in the form await page.fill('#post_title, input[name="post_title"]', 'Test Event Direct'); // Try TinyMCE try { const frame = page.frameLocator('iframe[id$="_ifr"]'); await frame.locator('body').fill('Test event description'); } catch (e) { await page.fill('#tcepostcontent, textarea[name="post_content"]', 'Test event description'); } // Fill dates and times (try multiple selectors) const dateSelectors = ['input[name="EventStartDate"]', '#EventStartDate', '.event-start-date']; for (const selector of dateSelectors) { if (await page.locator(selector).isVisible().catch(() => false)) { await page.fill(selector, '01/25/2025'); break; } } const timeSelectors = ['input[name="EventStartTime"]', '#EventStartTime', '.event-start-time']; for (const selector of timeSelectors) { if (await page.locator(selector).isVisible().catch(() => false)) { await page.fill(selector, '10:00 AM'); break; } } // Fill end date/time const endDateSelectors = ['input[name="EventEndDate"]', '#EventEndDate', '.event-end-date']; for (const selector of endDateSelectors) { if (await page.locator(selector).isVisible().catch(() => false)) { await page.fill(selector, '01/25/2025'); break; } } const endTimeSelectors = ['input[name="EventEndTime"]', '#EventEndTime', '.event-end-time']; for (const selector of endTimeSelectors) { if (await page.locator(selector).isVisible().catch(() => false)) { await page.fill(selector, '12:00 PM'); break; } } // Screenshot before submission await page.screenshot({ path: 'test-results/screenshots/before-submit-direct.png' }); // Submit the form await page.click('input[value="Submit Event"], button:has-text("Submit Event")'); await page.waitForLoadState('networkidle'); await page.waitForTimeout(3000); // Screenshot after submission await page.screenshot({ path: 'test-results/screenshots/after-submit-direct.png' }); // Check result const newUrl = page.url(); console.log('URL after submit:', newUrl); const successIndicators = await Promise.all([ page.locator('text="VIEW YOUR SUBMITTED EVENTS"').isVisible().catch(() => false), page.locator('text="Event submitted successfully"').isVisible().catch(() => false), page.locator('.tribe-success-msg').isVisible().catch(() => false), page.url().includes('/my-events/'), page.url().includes('/event/') ]); console.log('Success indicators:', successIndicators); expect(successIndicators.some(indicator => indicator)).toBeTruthy(); } });