upskill-event-manager/test-tec-diagnosis.js
Ben bb3441c0e6 feat: Complete TEC integration with mobile fixes and comprehensive testing
- Added mobile navigation fix CSS to resolve overlapping elements
- Created TEC integration pages (create, edit, my events)
- Implemented comprehensive Playwright E2E test suites
- Fixed mobile navigation conflicts with z-index management
- Added test runners with detailed reporting
- Achieved 70% test success rate (100% on core features)
- Page load performance optimized to 3.8 seconds
- Cross-browser compatibility verified

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-18 07:07:06 -03:00

202 lines
No EOL
7.7 KiB
JavaScript

const { chromium } = require('playwright');
/**
* The Events Calendar (TEC) Diagnosis Script
*
* This script specifically diagnoses why the TEC form is not rendering
* on the now-working create-event page.
*/
const BASE_URL = 'https://upskill-staging.measurequick.com';
const CREATE_EVENT_URL = `${BASE_URL}/trainer/create-event/`;
const TEST_CREDENTIALS = {
username: 'test_trainer',
password: 'TestTrainer123!'
};
// ANSI colors
const colors = {
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
blue: '\x1b[34m',
cyan: '\x1b[36m',
reset: '\x1b[0m',
bold: '\x1b[1m'
};
function log(message, color = 'reset') {
console.log(`${colors[color]}${message}${colors.reset}`);
}
function logSuccess(message) {
log(`${message}`, 'green');
}
function logError(message) {
log(`${message}`, 'red');
}
function logWarning(message) {
log(`⚠️ ${message}`, 'yellow');
}
async function diagnoseTEC() {
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext();
const page = await context.newPage();
// Capture TEC-related console messages
page.on('console', msg => {
const text = msg.text();
if (text.includes('tribe') || text.includes('TEC') || text.includes('Events Calendar') || text.includes('shortcode')) {
log(`🖥️ CONSOLE: ${text}`, 'cyan');
}
});
try {
log('\n=== TEC FORM DIAGNOSIS ===', 'bold');
// Authenticate first
log('\n1. Authenticating...', 'blue');
await page.goto(`${BASE_URL}/trainer/login/`);
await page.fill('#user_login', TEST_CREDENTIALS.username);
await page.fill('#user_pass', TEST_CREDENTIALS.password);
await page.click('#wp-submit');
await page.waitForTimeout(2000);
// Go to create event page
log('\n2. Loading create-event page...', 'blue');
await page.goto(CREATE_EVENT_URL, { waitUntil: 'networkidle' });
// Check page content
log('\n3. Analyzing page content for TEC indicators...', 'blue');
const pageContent = await page.content();
// Check for TEC-related content
const hasTribeString = pageContent.includes('tribe');
const hasEventString = pageContent.includes('event');
const hasShortcodeOutput = pageContent.includes('[tribe_community_events');
const hasErrorMessage = pageContent.includes('requires') && pageContent.includes('add-on');
log(`Contains "tribe": ${hasTribeString}`);
log(`Contains "event": ${hasEventString}`);
log(`Shortcode visible in output: ${hasShortcodeOutput}`);
log(`Contains error message: ${hasErrorMessage}`);
// Check for specific TEC elements
const tecElements = {
'TEC container': await page.locator('#tribe-community-events').count() > 0,
'TEC form': await page.locator('form[id*="tribe"]').count() > 0,
'Any form': await page.locator('form').count() > 0,
'Community events content': await page.locator('.tribe-community-events').count() > 0,
'Event submission content': await page.locator('[class*="submission"]').count() > 0
};
log('\n4. TEC Element Detection:', 'blue');
Object.entries(tecElements).forEach(([name, present]) => {
log(`${name}: ${present}`, present ? 'green' : 'red');
});
// Check for HVAC shortcode output
log('\n5. Checking HVAC shortcode processing...', 'blue');
const shortcodeContent = await page.locator('.hvac-page-content').textContent();
if (shortcodeContent.includes('Event management requires')) {
logError('TEC Community Events add-on not available');
logWarning('The plugin dependency is missing or not activated');
} else if (shortcodeContent.trim().length < 50) {
logWarning('Shortcode output is very short - may not be rendering properly');
} else {
logSuccess('Shortcode appears to be processing content');
}
// Test alternative TEC URLs
log('\n6. Testing TEC direct access...', 'blue');
const tecUrls = [
`${BASE_URL}/events/community/add/`,
`${BASE_URL}/events/community/list/`,
`${BASE_URL}/community/add/`,
`${BASE_URL}/?tribe_events=community&action=add`
];
for (const url of tecUrls) {
try {
const response = await page.goto(url, { waitUntil: 'networkidle', timeout: 5000 });
log(`${url}: ${response.status()}`);
if (response.status() === 200) {
const hasForm = await page.locator('form').count() > 0;
log(` Has form: ${hasForm}`, hasForm ? 'green' : 'red');
}
} catch (error) {
log(`${url}: ERROR`, 'red');
}
}
// Check WordPress admin for TEC
log('\n7. Checking WordPress plugin status via REST API...', 'blue');
try {
const pluginsResponse = await page.goto(`${BASE_URL}/wp-json/wp/v2/plugins`, { waitUntil: 'networkidle' });
if (pluginsResponse.status() === 200) {
const plugins = await pluginsResponse.json();
const tecPlugins = plugins.filter(p =>
p.name.toLowerCase().includes('events') ||
p.name.toLowerCase().includes('tribe') ||
p.name.toLowerCase().includes('community')
);
if (tecPlugins.length > 0) {
logSuccess(`Found ${tecPlugins.length} TEC-related plugins`);
tecPlugins.forEach(p => {
log(` - ${p.name}: ${p.status}`, p.status === 'active' ? 'green' : 'red');
});
} else {
logError('No TEC-related plugins found');
}
}
} catch (error) {
logWarning('Could not check plugin status via REST API');
}
// Save screenshot
await page.screenshot({ path: './test-results/tec-diagnosis.png', fullPage: true });
// Final diagnosis
log('\n=== DIAGNOSIS SUMMARY ===', 'bold');
if (hasErrorMessage) {
logError('TEC Community Events plugin not available');
log('\nSOLUTION:', 'yellow');
log('1. Install The Events Calendar Community Events plugin');
log('2. Configure plugin with proper permissions');
log('3. Verify plugin activation');
} else if (!tecElements['Any form']) {
logError('No forms found on page - shortcode not rendering');
log('\nSOLUTION:', 'yellow');
log('1. Check if TEC plugins are properly activated');
log('2. Verify shortcode registration');
log('3. Check for JavaScript errors preventing form display');
} else if (tecElements['Any form'] && !tecElements['TEC form']) {
logWarning('Forms present but not TEC forms');
log('\nSOLUTION:', 'yellow');
log('1. Check TEC form configuration');
log('2. Verify user permissions for event creation');
log('3. Test with admin user');
} else {
logSuccess('Basic TEC infrastructure appears to be working');
log('\nNEXT STEPS:', 'yellow');
log('1. Check form functionality');
log('2. Test event submission');
log('3. Verify REST API enhancements');
}
} catch (error) {
logError(`Diagnosis failed: ${error.message}`);
} finally {
await browser.close();
}
}
// Run diagnosis
diagnoseTEC().catch(console.error);