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

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 });
});
});