upskill-event-manager/wordpress-dev/tests/e2e/verify-dashboard-events.spec.ts

63 lines
No EOL
2.3 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { BaseHelpers } from './helpers/base-helpers';
import { LoginPage } from './pages/login-page';
import { DashboardPage } from './pages/dashboard-page';
import { CreateEventPage } from './pages/create-event-page';
test.describe('Dashboard Event Statistics', () => {
const config = BaseHelpers.loadConfig();
let loginPage: LoginPage;
let dashboardPage: DashboardPage;
let createEventPage: CreateEventPage;
test.beforeEach(async ({ page }) => {
loginPage = new LoginPage(page);
dashboardPage = new DashboardPage(page);
createEventPage = new CreateEventPage(page);
});
test('should show events on dashboard after creation', async ({ page }) => {
// Login as test trainer
await loginPage.goto();
await loginPage.login('test_trainer', 'password123!');
// Go to Create Event page
await page.goto(`${config.staging_url}/manage-event`);
await page.waitForLoadState('networkidle');
// Create a test event with unique name
const eventName = `Dashboard Test Event ${Date.now()}`;
await createEventPage.fillEventTitle(eventName);
await createEventPage.fillEventDescription('Test event to verify dashboard shows events correctly');
await createEventPage.selectEventDate(); // Uses default date
await createEventPage.fillEventVenue({
venueName: 'Test Venue',
address1: '123 Test St',
city: 'Test City',
state: 'Florida',
zip: '33101'
});
// Submit the event
await createEventPage.submitEvent();
// Wait for submission to complete
await page.waitForTimeout(3000);
// Go to dashboard and check if event count has increased
await dashboardPage.goto();
await page.waitForLoadState('networkidle');
// Check if the event stats show at least 1 event
const totalEventsText = await page.locator('.metric-value').first().textContent();
console.log('Total events shown on dashboard:', totalEventsText);
// Verify the event count is greater than 0
const eventCount = parseInt(totalEventsText || '0');
expect(eventCount).toBeGreaterThan(0);
// Also check if the event appears in "My Events"
await page.goto(`${config.staging_url}/my-events`);
await expect(page.locator('text=' + eventName)).toBeVisible();
});
});