upskill-event-manager/wordpress-dev/tests/e2e/debug-event-submission-direct.test.ts

107 lines
No EOL
4.4 KiB
TypeScript

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