75 lines
No EOL
3.2 KiB
TypeScript
75 lines
No EOL
3.2 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test.describe('Dashboard Event Statistics After Author Fix', () => {
|
|
test('events should now appear on trainer dashboard', async ({ page }) => {
|
|
// Load config
|
|
const configPath = new URL('../../config.json', import.meta.url).pathname;
|
|
const fs = require('fs');
|
|
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
|
|
// Login as test trainer
|
|
await page.goto(`${config.staging_url}/community-login`);
|
|
await page.fill('#user_login', 'test_trainer');
|
|
await page.fill('#user_pass', 'password123!');
|
|
await page.click('button[type="submit"]');
|
|
await page.waitForTimeout(3000);
|
|
|
|
// Go to dashboard
|
|
await page.goto(`${config.staging_url}/hvac-dashboard`);
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
// Check event statistics
|
|
const totalEventsElement = await page.locator('.metric-value').first();
|
|
const totalEventsText = await totalEventsElement.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);
|
|
|
|
// Create a new event to test author assignment
|
|
await page.goto(`${config.staging_url}/manage-event`);
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
// Fill event form
|
|
const eventName = `Author Test Event ${Date.now()}`;
|
|
await page.fill('#title', eventName);
|
|
|
|
// Fill description in TinyMCE iframe
|
|
const iframe = page.frameLocator('#wp-tcepostcontent-editor-container iframe');
|
|
await iframe.locator('body').fill('Test event to verify author assignment is working correctly');
|
|
|
|
// Select future date
|
|
const futureDate = new Date();
|
|
futureDate.setDate(futureDate.getDate() + 7);
|
|
const formattedDate = `${String(futureDate.getMonth() + 1).padStart(2, '0')}/${String(futureDate.getDate()).padStart(2, '0')}/${futureDate.getFullYear()}`;
|
|
await page.fill('#EventStartDate', formattedDate);
|
|
await page.fill('#EventEndDate', formattedDate);
|
|
|
|
// Fill venue details
|
|
await page.fill('#venue', 'Test Venue for Author Test');
|
|
await page.fill('#venue-address', '123 Author Test St');
|
|
await page.fill('#venue-city', 'Test City');
|
|
await page.selectOption('#venue-state-province', { label: 'Florida' });
|
|
await page.fill('#venue-zip', '33101');
|
|
|
|
// Submit
|
|
await page.click('button[type="submit"]');
|
|
await page.waitForTimeout(5000);
|
|
|
|
// Check dashboard again - event count should have increased
|
|
await page.goto(`${config.staging_url}/hvac-dashboard`);
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
const newTotalEventsText = await page.locator('.metric-value').first().textContent();
|
|
console.log('New total events shown on dashboard:', newTotalEventsText);
|
|
const newEventCount = parseInt(newTotalEventsText || '0');
|
|
|
|
// Should be at least 1 more than before
|
|
expect(newEventCount).toBeGreaterThanOrEqual(eventCount + 1);
|
|
|
|
// Verify the event appears in "My Events"
|
|
await page.goto(`${config.staging_url}/my-events`);
|
|
await expect(page.locator(`text=${eventName}`)).toBeVisible();
|
|
});
|
|
}); |