112 lines
		
	
	
		
			No EOL
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			No EOL
		
	
	
		
			4.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
 | |
| import { test, expect } from '@playwright/test';
 | |
| 
 | |
| test.describe('Refactored Dashboard Test', () => {
 | |
|   test('verify refactored dashboard displays correctly', 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!');
 | |
|     await page.click('input[type="submit"]');
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.waitForTimeout(2000);
 | |
| 
 | |
|     // Go to dashboard
 | |
|     console.log('Navigating to dashboard...');
 | |
|     await page.goto(`${staging_url}/hvac-dashboard`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     
 | |
|     // Take a screenshot
 | |
|     await page.screenshot({ path: 'refactored-dashboard.png', fullPage: true });
 | |
|     
 | |
|     // Check if dashboard is loading properly
 | |
|     const content = await page.content();
 | |
|     
 | |
|     console.log('\n=== Dashboard Refactor Check ===');
 | |
|     
 | |
|     // Check for new dashboard wrapper
 | |
|     const hasDashboardWrapper = content.includes('hvac-dashboard-wrapper');
 | |
|     console.log('Has dashboard wrapper:', hasDashboardWrapper);
 | |
|     
 | |
|     // Check for stats section
 | |
|     const hasStatsSection = content.includes('hvac-dashboard-stats');
 | |
|     console.log('Has stats section:', hasStatsSection);
 | |
|     
 | |
|     // Check for stat cards
 | |
|     const hasStatCards = content.includes('hvac-stat-card');
 | |
|     console.log('Has stat cards:', hasStatCards);
 | |
|     
 | |
|     // Check for specific stats
 | |
|     const stats = ['Total Events', 'Upcoming Events', 'Past Events', 'Tickets Sold', 'Total Revenue'];
 | |
|     for (const stat of stats) {
 | |
|       const hasStat = content.includes(stat);
 | |
|       console.log(`Has ${stat}:`, hasStat);
 | |
|     }
 | |
|     
 | |
|     // Check for navigation buttons
 | |
|     const hasCreateEventButton = content.includes('Create Event');
 | |
|     console.log('Has Create Event button:', hasCreateEventButton);
 | |
|     
 | |
|     const hasMyEventsButton = content.includes('My Events');
 | |
|     console.log('Has My Events button:', hasMyEventsButton);
 | |
|     
 | |
|     // Count stat cards
 | |
|     const statCardCount = await page.locator('.hvac-stat-card').count();
 | |
|     console.log('Number of stat cards:', statCardCount);
 | |
|     expect(statCardCount).toBe(5); // Should have 5 stat cards
 | |
|     
 | |
|     // Get event count from dashboard
 | |
|     const totalEventsValue = await page.locator('.hvac-stat-card:has-text("Total Events") .metric-value').textContent();
 | |
|     console.log('Total events value:', totalEventsValue);
 | |
|     
 | |
|     // Check events table
 | |
|     const hasEventsTable = content.includes('hvac-events-table');
 | |
|     console.log('Has events table:', hasEventsTable);
 | |
|     
 | |
|     // Check filters
 | |
|     const hasFilters = content.includes('hvac-event-filters');
 | |
|     console.log('Has event filters:', hasFilters);
 | |
|     
 | |
|     console.log('=== End Dashboard Refactor Check ===\n');
 | |
|     
 | |
|     // Create a quick event to test if dashboard updates
 | |
|     console.log('Creating test event...');
 | |
|     await page.goto(`${staging_url}/manage-event`);
 | |
|     
 | |
|     // Wait for form to load
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     await page.waitForTimeout(2000);
 | |
|     
 | |
|     // Save page content for debugging
 | |
|     const formContent = await page.content();
 | |
|     const fs = require('fs');
 | |
|     fs.writeFileSync('manage-event-form.html', formContent);
 | |
|     
 | |
|     // Try to find title field
 | |
|     const titleSelectors = ['#title', 'input[name="post_title"]', 'input[name="title"]', 'input[name="EventTitle"]'];
 | |
|     let titleFilled = false;
 | |
|     
 | |
|     for (const selector of titleSelectors) {
 | |
|       const titleField = await page.locator(selector).count();
 | |
|       if (titleField > 0) {
 | |
|         console.log(`Found title field with selector: ${selector}`);
 | |
|         await page.fill(selector, `Dashboard Test Event ${Date.now()}`);
 | |
|         titleFilled = true;
 | |
|         break;
 | |
|       }
 | |
|     }
 | |
|     
 | |
|     if (!titleFilled) {
 | |
|       console.log('Could not find title field, skipping event creation');
 | |
|     }
 | |
|     
 | |
|     // Return to dashboard
 | |
|     await page.goto(`${staging_url}/hvac-dashboard`);
 | |
|     await page.waitForLoadState('networkidle');
 | |
|     
 | |
|     // Take final screenshot
 | |
|     await page.screenshot({ path: 'refactored-dashboard-final.png', fullPage: true });
 | |
|   });
 | |
| }); |