107 lines
No EOL
4.4 KiB
TypeScript
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();
|
|
}
|
|
}); |