upskill-event-manager/wordpress-dev/tests/e2e/final-dashboard-verification.test.ts

99 lines
No EOL
3.8 KiB
TypeScript

import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
import { test, expect } from '@playwright/test';
test.describe('Final Dashboard Verification', () => {
test('verify dashboard displays with proper login', async ({ page }) => {
const staging_url = 'https://upskill-staging.measurequick.com';
// Start fresh with dashboard page
console.log('1. Going to dashboard page...');
await page.goto(`${staging_url}/hvac-dashboard/`);
await page.waitForLoadState('networkidle');
// Take initial screenshot
await page.screenshot({ path: 'dashboard-initial.png' });
// Check if we see login prompt
const loginPrompt = await page.locator('.hvac-login-notice').count();
console.log('Login prompt visible:', loginPrompt > 0);
if (loginPrompt > 0) {
// Click login button if present
const loginButton = await page.locator('.hvac-login-notice a.button').first();
if (await loginButton.isVisible()) {
console.log('2. Clicking login button...');
await loginButton.click();
await page.waitForLoadState('networkidle');
}
}
// If we're on login page, log in
const currentUrl = page.url();
console.log('Current URL:', currentUrl);
if (currentUrl.includes('community-login')) {
console.log('3. Logging in...');
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
console.log('4. Returning to dashboard...');
await page.goto(`${staging_url}/hvac-dashboard/`);
await page.waitForLoadState('networkidle');
}
// Check dashboard content
console.log('5. Checking dashboard content...');
const content = await page.content();
// Take final screenshot
await page.screenshot({ path: 'dashboard-final.png', fullPage: true });
// Verify dashboard elements
const dashboardChecks = {
'Dashboard wrapper': content.includes('hvac-dashboard-wrapper'),
'Dashboard stats section': content.includes('hvac-dashboard-stats'),
'Stat cards': content.includes('hvac-stat-card'),
'Create Event button': content.includes('Create Event'),
'My Events button': content.includes('My Events'),
'Events table': content.includes('hvac-events-table')
};
console.log('\n=== Dashboard Elements Check ===');
for (const [element, found] of Object.entries(dashboardChecks)) {
console.log(`${element}: ${found ? '✓' : '✗'}`);
}
// Count and display stat cards
const statCardCount = await page.locator('.hvac-stat-card').count();
console.log(`\nStat cards found: ${statCardCount}`);
if (statCardCount > 0) {
console.log('\n=== Dashboard Statistics ===');
const statCards = await page.locator('.hvac-stat-card').all();
for (const card of statCards) {
const title = await card.locator('h3').textContent();
const value = await card.locator('.metric-value').textContent();
console.log(`${title}: ${value}`);
}
}
// Check events table
const eventRows = await page.locator('.hvac-events-table tbody tr').count();
console.log(`\nEvents in table: ${eventRows}`);
// Save full content for analysis
const fs = require('fs');
fs.writeFileSync('dashboard-final-content.html', content);
console.log('\nFull content saved to dashboard-final-content.html');
// Final verification
const isDashboardWorking = statCardCount > 0 && dashboardChecks['Dashboard wrapper'];
console.log(`\nDashboard working: ${isDashboardWorking ? 'YES' : 'NO'}`);
expect(isDashboardWorking).toBe(true);
});
});