85 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
 | |
| import { test, expect } from '@playwright/test';
 | |
| 
 | |
| test.describe('Dashboard Event Statistics After Author Fix', () => {
 | |
|   test('events should now appear on trainer dashboard', async ({ page }) => {
 | |
|     const staging_url = 'https://upskill-staging.measurequick.com';
 | |
|     
 | |
|     // Login as test trainer
 | |
|     await page.goto(`${staging_url}/community-login`);
 | |
|     await page.fill('#user_login', 'test_trainer');
 | |
|     await page.fill('#user_pass', 'password123!');
 | |
|     // Use the correct submit button selector
 | |
|     await page.click('input[type="submit"]');
 | |
|     await page.waitForTimeout(3000);
 | |
| 
 | |
|     // Go to dashboard
 | |
|     await page.goto(`${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');
 | |
|     console.log('Event count on dashboard:', eventCount);
 | |
|     
 | |
|     // Create a test event to verify author assignment is working
 | |
|     await page.goto(`${staging_url}/manage-event`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
| 
 | |
|     // Fill basic event details
 | |
|     const eventName = `Author Test ${Date.now()}`;
 | |
|     await page.fill('input[id="title"]', eventName);
 | |
|     
 | |
|     // Fill description - check if TinyMCE exists
 | |
|     const tinyMceExists = await page.locator('#wp-tcepostcontent-editor-container iframe').count() > 0;
 | |
|     if (tinyMceExists) {
 | |
|       const iframe = page.frameLocator('#wp-tcepostcontent-editor-container iframe');
 | |
|       await iframe.locator('body').fill('Test event description with author fix');
 | |
|     } else {
 | |
|       // Try regular textarea
 | |
|       await page.fill('textarea[id="tcepostcontent"]', 'Test event description with author fix');
 | |
|     }
 | |
| 
 | |
|     // Set event date
 | |
|     const tomorrow = new Date();
 | |
|     tomorrow.setDate(tomorrow.getDate() + 1);
 | |
|     const dateStr = `${String(tomorrow.getMonth() + 1).padStart(2, '0')}/${String(tomorrow.getDate()).padStart(2, '0')}/${tomorrow.getFullYear()}`;
 | |
|     await page.fill('#EventStartDate', dateStr);
 | |
|     await page.fill('#EventEndDate', dateStr);
 | |
| 
 | |
|     // Fill minimal venue details
 | |
|     await page.fill('#venue', 'Test Venue');
 | |
|     await page.fill('#venue-address', '123 Test St');
 | |
|     await page.fill('#venue-city', 'Miami');
 | |
|     await page.selectOption('#venue-state-province', 'FL');
 | |
|     await page.fill('#venue-zip', '33101');
 | |
| 
 | |
|     // Submit the event
 | |
|     await page.click('button[type="submit"]');
 | |
|     await page.waitForTimeout(5000);
 | |
| 
 | |
|     // Go back to dashboard to check if event count increased
 | |
|     await page.goto(`${staging_url}/hvac-dashboard`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     
 | |
|     const newTotalEventsText = await page.locator('.metric-value').first().textContent();
 | |
|     const newEventCount = parseInt(newTotalEventsText || '0');
 | |
|     console.log('New event count on dashboard:', newEventCount);
 | |
|     
 | |
|     // Should have increased
 | |
|     expect(newEventCount).toBeGreaterThan(eventCount);
 | |
|     
 | |
|     // Verify the event appears in My Events
 | |
|     await page.goto(`${staging_url}/my-events`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     
 | |
|     // Check if our event is listed
 | |
|     const eventListed = await page.locator(`text=${eventName}`).count() > 0;
 | |
|     expect(eventListed).toBe(true);
 | |
|     console.log(`Event "${eventName}" found in My Events: ${eventListed}`);
 | |
|   });
 | |
| }); |