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

105 lines
No EOL
4.4 KiB
TypeScript

import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
import { test, expect } from '@playwright/test';
import { LoginPage } from './pages/LoginPage';
import { DashboardPage } from './pages/DashboardPage';
import { CreateEventPage } from './pages/CreateEventPage';
import { EventSummaryPage } from './pages/EventSummaryPage';
import { ModifyEventPage } from './pages/ModifyEventPage';
import { TEST_USERS } from './data/test-users';
import { TEST_EVENTS } from './data/test-events';
// STAGING_URL is now imported from config
test.describe('Debug Event Listing', () => {
let loginPage: LoginPage;
let dashboardPage: DashboardPage;
let createEventPage: CreateEventPage;
const trainer = TEST_USERS.trainer;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
dashboardPage = new DashboardPage(page);
createEventPage = new CreateEventPage(page);
// Set base URL and login
page.context().setDefaultNavigationTimeout(TIMEOUTS.navigation);
await page.goto(STAGING_URL);
await loginPage.navigateToLogin();
await loginPage.login(trainer.username, trainer.password);
});
test('Create Event and Click View Your Events', async ({ page }) => {
// Click create event button
await dashboardPage.clickCreateEvent();
await expect(page).toHaveURL(/.*manage-event/);
// Fill event details
const eventData = TEST_EVENTS.basicEvent;
await createEventPage.fillEventDetails(eventData);
// Submit event
await createEventPage.submitEvent();
// Wait for navigation or success indicator
await page.waitForLoadState('networkidle');
// Click View Your Submitted Events
const viewYourEventsButton = page.locator('text="VIEW YOUR SUBMITTED EVENTS"');
const buttonVisible = await viewYourEventsButton.isVisible();
if (buttonVisible) {
console.log('Clicking View Your Submitted Events button');
await viewYourEventsButton.click();
await page.waitForLoadState('networkidle');
const newUrl = page.url();
console.log('After clicking View Your Events:', newUrl);
await page.screenshot({ path: 'test-results/screenshots/my-events-page.png' });
// Check what's on this page
const pageContent = await page.locator('body').innerText();
console.log('Page content preview:', pageContent.substring(0, 500));
// Look for event listings
const eventRows = await page.locator('table tbody tr').count();
console.log('Number of event rows found:', eventRows);
if (eventRows > 0) {
// Try to click the first event
const firstEventTitle = await page.locator('table tbody tr').first().locator('a').first();
const eventTitleText = await firstEventTitle.innerText();
console.log('First event title:', eventTitleText);
await firstEventTitle.click();
await page.waitForLoadState('networkidle');
const eventUrl = page.url();
console.log('After clicking event:', eventUrl);
await page.screenshot({ path: 'test-results/screenshots/event-detail-page.png' });
}
}
});
test('Direct Navigation to My Events', async ({ page }) => {
// Navigate directly to my-events page
await page.goto(`${STAGING_URL}/my-events/`);
await page.waitForLoadState('networkidle');
await page.screenshot({ path: 'test-results/screenshots/direct-my-events.png' });
// Check for events
const pageContent = await page.locator('body').innerText();
console.log('My Events page content:', pageContent.substring(0, 500));
// Look for specific elements that might contain events
const tables = await page.locator('table').count();
console.log('Number of tables:', tables);
const eventLinks = await page.locator('a[href*="event"]').count();
console.log('Number of event links:', eventLinks);
// Check for any status filters
const statusFilters = await page.locator('a[href*="status"]').count();
console.log('Number of status filters:', statusFilters);
});
});