76 lines
No EOL
2.9 KiB
TypeScript
76 lines
No EOL
2.9 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { LoginPage } from './LoginPage';
|
|
import { DashboardPage } from './DashboardPage';
|
|
import { TEST_USERS } from '../data/test-users';
|
|
|
|
test.describe('Debug Dashboard Elements', () => {
|
|
test('Check dashboard elements after login', async ({ page }) => {
|
|
const loginPage = new LoginPage(page);
|
|
const dashboardPage = new DashboardPage(page);
|
|
const trainer = TEST_USERS.trainer;
|
|
|
|
// Login first
|
|
await loginPage.navigateToLogin();
|
|
await loginPage.login(trainer.username, trainer.password);
|
|
|
|
// Wait for dashboard to load
|
|
await page.waitForTimeout(3000);
|
|
|
|
console.log(`Current URL: ${page.url()}`);
|
|
|
|
// Check for events table
|
|
const tableVisible = await page.locator('table').isVisible().catch(() => false);
|
|
console.log(`Events table visible: ${tableVisible}`);
|
|
|
|
// Get all tables and their text
|
|
const tables = await page.locator('table').all();
|
|
console.log(`Number of tables found: ${tables.length}`);
|
|
|
|
for (let i = 0; i < tables.length; i++) {
|
|
const tableText = await tables[i].textContent();
|
|
console.log(`Table ${i}: ${tableText?.slice(0, 100)}...`);
|
|
}
|
|
|
|
// Check for statistics
|
|
const statsSelectors = [
|
|
'.hvac-stat-card:has-text("Total Events")',
|
|
'.hvac-stat-card:has-text("Upcoming Events")',
|
|
'.hvac-stat-card:has-text("Past Events")',
|
|
'.hvac-stat-card:has-text("Total Revenue")',
|
|
'.stats-section',
|
|
'.dashboard-stats',
|
|
'.hvac-stats-grid'
|
|
];
|
|
|
|
for (const selector of statsSelectors) {
|
|
const visible = await page.locator(selector).isVisible().catch(() => false);
|
|
if (visible) {
|
|
const text = await page.locator(selector).textContent();
|
|
console.log(`Stats element ${selector}: ${text?.slice(0, 100)}...`);
|
|
}
|
|
}
|
|
|
|
// Check for create event button
|
|
const createEventSelectors = [
|
|
'a:has-text("Create Event")',
|
|
'button:has-text("Create Event")',
|
|
'a:has-text("Add Event")',
|
|
'button:has-text("Add Event")',
|
|
'.create-event-button',
|
|
'[href*="create-event"]',
|
|
'[href*="add-event"]'
|
|
];
|
|
|
|
for (const selector of createEventSelectors) {
|
|
const visible = await page.locator(selector).isVisible().catch(() => false);
|
|
if (visible) {
|
|
const href = await page.locator(selector).getAttribute('href');
|
|
console.log(`Create Event button ${selector}: visible, href=${href}`);
|
|
}
|
|
}
|
|
|
|
// Take screenshot
|
|
await page.screenshot({ path: 'dashboard-debug.png', fullPage: true });
|
|
console.log('Screenshot saved as dashboard-debug.png');
|
|
});
|
|
}); |