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