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