93 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			No EOL
		
	
	
		
			3.5 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
 | |
| import { test, expect } from '@playwright/test';
 | |
| 
 | |
| test.describe('Simple Dashboard Check', () => {
 | |
|   test('check dashboard using direct URL with manual login', async ({ page }) => {
 | |
|     const staging_url = 'https://upskill-staging.measurequick.com';
 | |
|     
 | |
|     console.log('Accessing dashboard without cache...');
 | |
|     
 | |
|     // Go directly to dashboard with cache busting
 | |
|     await page.goto(`${staging_url}/hvac-dashboard/?nocache=${Date.now()}`);
 | |
|     await page.waitForLoadState('domcontentloaded');
 | |
|     
 | |
|     // Check if we're redirected to login
 | |
|     const url = page.url();
 | |
|     console.log('Current URL:', url);
 | |
|     
 | |
|     if (url.includes('community-login') || url.includes('wp-login')) {
 | |
|       console.log('Redirected to login, attempting to log in...');
 | |
|       await page.waitForTimeout(2000);
 | |
|       
 | |
|       // Try to find login fields
 | |
|       const loginFieldExists = await page.locator('#user_login').count() > 0;
 | |
|       if (loginFieldExists) {
 | |
|         await page.fill('#user_login', 'test_trainer');
 | |
|         await page.fill('#user_pass', 'password123!');
 | |
|         await page.click('#wp-submit');
 | |
|         await page.waitForLoadState('networkidle');
 | |
|         await page.waitForTimeout(3000);
 | |
|         
 | |
|         // Navigate back to dashboard
 | |
|         await page.goto(`${staging_url}/hvac-dashboard/`);
 | |
|         await page.waitForLoadState('networkidle');
 | |
|       }
 | |
|     }
 | |
|     
 | |
|     // Take screenshot
 | |
|     await page.screenshot({ path: 'simple-dashboard-check.png', fullPage: true });
 | |
|     
 | |
|     // Get page content
 | |
|     const content = await page.content();
 | |
|     
 | |
|     // Check what's on the page
 | |
|     console.log('\n=== Dashboard Content Check ===');
 | |
|     
 | |
|     const pageTitle = await page.title();
 | |
|     console.log('Page title:', pageTitle);
 | |
|     
 | |
|     // Check for dashboard elements
 | |
|     const elements = {
 | |
|       'Dashboard shortcode': '[hvac_trainer_dashboard]',
 | |
|       'Dashboard wrapper': 'hvac-dashboard-wrapper',
 | |
|       'Dashboard stats': 'hvac-dashboard-stats',
 | |
|       'Stat cards': 'hvac-stat-card',
 | |
|       'Login message': 'Please log in',
 | |
|       'Total Events': 'Total Events',
 | |
|       'Create Event': 'Create Event'
 | |
|     };
 | |
|     
 | |
|     for (const [name, searchText] of Object.entries(elements)) {
 | |
|       const found = content.includes(searchText);
 | |
|       console.log(`${name}: ${found ? 'Found' : 'Not found'}`);
 | |
|     }
 | |
|     
 | |
|     // Check if we're seeing the actual dashboard content
 | |
|     const isDashboardLoaded = content.includes('hvac-dashboard-wrapper') && content.includes('hvac-stat-card');
 | |
|     
 | |
|     if (isDashboardLoaded) {
 | |
|       // Count stat cards
 | |
|       const statCardCount = await page.locator('.hvac-stat-card').count();
 | |
|       console.log('Number of stat cards:', statCardCount);
 | |
|       
 | |
|       // Get values from stat cards
 | |
|       const statCards = await page.locator('.hvac-stat-card').all();
 | |
|       for (let i = 0; i < statCards.length; i++) {
 | |
|         const title = await statCards[i].locator('h3').textContent();
 | |
|         const value = await statCards[i].locator('.metric-value').textContent();
 | |
|         console.log(`${title}: ${value}`);
 | |
|       }
 | |
|     } else {
 | |
|       console.log('Dashboard content not loaded - checking for error messages');
 | |
|       const bodyText = await page.locator('body').innerText();
 | |
|       console.log('Page body text (first 500 chars):', bodyText.substring(0, 500));
 | |
|     }
 | |
|     
 | |
|     console.log('=== End Dashboard Content Check ===\n');
 | |
|     
 | |
|     // Save the full HTML for analysis
 | |
|     const fs = require('fs');
 | |
|     fs.writeFileSync('simple-dashboard-content.html', content);
 | |
|     console.log('Full page content saved to simple-dashboard-content.html');
 | |
|   });
 | |
| }); |