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

115 lines
No EOL
4 KiB
TypeScript

import { STAGING_URL, PATHS, TIMEOUTS } from './config/staging-config';
import { test, expect } from '@playwright/test';
import { LoginPage } from './pages/LoginPage';
import { TEST_USERS } from './data/test-users';
// STAGING_URL is now imported from config
test('Debug dashboard details and stats', async ({ page }) => {
const loginPage = new LoginPage(page);
const trainer = TEST_USERS.trainer;
// Set base URL
await page.goto(STAGING_URL);
// Login
await loginPage.navigateToLogin();
await loginPage.login(trainer.username, trainer.password);
// Wait for navigation
await page.waitForLoadState('networkidle');
console.log('Looking for dashboard statistics...');
// Find all divs and look for ones with statistics
const divs = await page.locator('div').all();
console.log(`Found ${divs.length} divs on the page`);
// Look for text content that might contain stats
const statsTexts = [
'Total Events',
'Upcoming Events',
'Past Events',
'Total Tickets',
'Total Revenue',
'Annual Revenue Target'
];
for (const text of statsTexts) {
const elements = await page.locator(`text="${text}"`).all();
console.log(`"${text}": Found ${elements.length} instances`);
if (elements.length > 0) {
// Try to find associated number/value
const parentElement = elements[0];
const parent = await parentElement.locator('..').first();
const parentText = await parent.textContent();
console.log(` Parent text: ${parentText}`);
// Look for sibling elements
const siblings = await parent.locator('*').all();
for (let i = 0; i < siblings.length; i++) {
const siblingText = await siblings[i].textContent();
console.log(` Sibling ${i}: ${siblingText}`);
}
}
}
// Look for the events table more specifically
console.log('\nLooking for events table structure...');
const tables = await page.locator('table').all();
for (let i = 0; i < tables.length; i++) {
console.log(`\nTable ${i + 1}:`);
const table = tables[i];
// Check for headers
const headers = await table.locator('th').all();
console.log(` Headers: ${headers.length}`);
for (let j = 0; j < headers.length; j++) {
const headerText = await headers[j].textContent();
console.log(` Header ${j}: ${headerText}`);
}
// Check for rows
const rows = await table.locator('tbody tr').all();
console.log(` Rows: ${rows.length}`);
if (rows.length > 0) {
// Check first row
const firstRow = rows[0];
const cells = await firstRow.locator('td').all();
console.log(` First row cells: ${cells.length}`);
for (let k = 0; k < cells.length; k++) {
const cellText = await cells[k].textContent();
console.log(` Cell ${k}: ${cellText}`);
}
}
}
// Take a focused screenshot
await page.screenshot({ path: 'test-results/debug-dashboard-focused.png', fullPage: true });
// Try to find the specific dashboard container
console.log('\nLooking for dashboard containers...');
const possibleContainers = [
'.hvac-trainer-dashboard',
'#hvac-trainer-dashboard',
'.trainer-dashboard-container',
'.dashboard-content',
'.entry-content',
'article.page',
'.page-content'
];
for (const selector of possibleContainers) {
const exists = await page.locator(selector).count() > 0;
if (exists) {
console.log(`${selector}: FOUND`);
const content = await page.locator(selector).first().textContent();
console.log(` Content preview: ${content?.substring(0, 200)}...`);
} else {
console.log(`${selector}: NOT FOUND`);
}
}
});