- Update debug-event-creation.test.ts with comprehensive TEC form detection - Create event-creation-tec.test.ts for TEC-specific event workflows - Add trainer-journey-complete.test.ts for full trainer workflow testing - Add tec-shortcode-check.test.ts to verify shortcode processing - Create event-creation-integration.test.ts for end-to-end integration - Update all tests to use TEC form selectors and handle editor types - Add proper error handling for when TEC shortcode shows as raw text These tests support the fix that removed the HVAC shortcode override, allowing The Events Calendar Community Events to handle the form properly. Co-Authored-By: Ben Reed <ben@tealmaker.com>
131 lines
No EOL
5.1 KiB
TypeScript
131 lines
No EOL
5.1 KiB
TypeScript
import { test, expect } from './fixtures/auth';
|
|
import { CommonActions } from './utils/common-actions';
|
|
|
|
/**
|
|
* TEC Shortcode Processing Check
|
|
*
|
|
* This test verifies that The Events Calendar Community Events shortcode
|
|
* is being processed correctly on the manage-event page.
|
|
*/
|
|
test.describe('TEC Shortcode Processing', () => {
|
|
test('Verify TEC shortcode is processed on manage-event page', async ({ authenticatedPage: page }) => {
|
|
test.setTimeout(30000);
|
|
const actions = new CommonActions(page);
|
|
|
|
// Navigate to Create Event page
|
|
await actions.navigateAndWait('/manage-event/');
|
|
await actions.screenshot('tec-shortcode-page-loaded');
|
|
|
|
// Wait for the page to be fully loaded
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
// Get page content
|
|
const pageContent = await page.locator('body').innerText();
|
|
|
|
// Check if raw shortcode is visible (which would be bad)
|
|
const hasRawShortcode = pageContent.includes('[tribe_community_events');
|
|
if (hasRawShortcode) {
|
|
console.log('❌ ERROR: TEC shortcode is not being processed!');
|
|
console.log('The page shows the raw shortcode text instead of the form.');
|
|
|
|
// Check if TEC plugin is active
|
|
console.log('\nDebugging info:');
|
|
console.log('- Page URL:', page.url());
|
|
console.log('- Page title:', await page.title());
|
|
|
|
// Look for any error messages
|
|
const errors = await page.locator('.error, .notice-error').allTextContents();
|
|
if (errors.length > 0) {
|
|
console.log('- Error messages found:', errors);
|
|
}
|
|
|
|
// Check if there's any form at all
|
|
const formCount = await page.locator('form').count();
|
|
console.log(`- Forms on page: ${formCount}`);
|
|
|
|
throw new Error('TEC Community Events shortcode is not being processed');
|
|
}
|
|
|
|
// Look for expected TEC form elements
|
|
const expectedElements = {
|
|
'Event form': 'form[id*="community"], form[class*="tribe"]',
|
|
'Title field': 'input[name="post_title"], input#post_title',
|
|
'Content area': 'textarea[name="post_content"], iframe[id*="_ifr"]',
|
|
'Date fields': 'input[name*="EventDate"], input[id*="EventDate"]',
|
|
'Submit button': 'input[type="submit"], button[type="submit"]'
|
|
};
|
|
|
|
console.log('✅ TEC shortcode is being processed (no raw shortcode found)');
|
|
console.log('\nChecking for expected form elements:');
|
|
|
|
for (const [name, selector] of Object.entries(expectedElements)) {
|
|
const element = page.locator(selector).first();
|
|
const count = await element.count();
|
|
const isVisible = count > 0 ? await element.isVisible() : false;
|
|
|
|
console.log(`- ${name}: ${count > 0 ? '✓ Found' : '✗ Not found'} ${isVisible ? '(visible)' : ''}`);
|
|
|
|
if (count > 0 && name === 'Event form') {
|
|
const formId = await element.getAttribute('id');
|
|
const formClass = await element.getAttribute('class');
|
|
console.log(` Form details: id="${formId}", class="${formClass}"`);
|
|
}
|
|
}
|
|
|
|
// Take a screenshot of the form
|
|
await actions.screenshot('tec-form-structure');
|
|
|
|
// Additional debugging: Check page structure
|
|
const h1 = await page.locator('h1').first().textContent();
|
|
const h2 = await page.locator('h2').first().textContent();
|
|
console.log(`\nPage headings:`);
|
|
console.log(`- H1: ${h1}`);
|
|
console.log(`- H2: ${h2}`);
|
|
|
|
// Check if we can identify the form type
|
|
const hasTECForm = await page.locator('form[id*="tribe-community-events"], form.tribe-community-events-form').count() > 0;
|
|
const hasHVACForm = await page.locator('form#hvac-event-form').count() > 0;
|
|
|
|
console.log(`\nForm type detection:`);
|
|
console.log(`- TEC Community form: ${hasTECForm ? 'Yes' : 'No'}`);
|
|
console.log(`- HVAC custom form: ${hasHVACForm ? 'Yes' : 'No'}`);
|
|
|
|
// Final assertion
|
|
expect(hasRawShortcode).toBe(false);
|
|
expect(await page.locator('form').count()).toBeGreaterThan(0);
|
|
});
|
|
|
|
test('Check TEC plugin activation status', async ({ page }) => {
|
|
test.setTimeout(30000);
|
|
const actions = new CommonActions(page);
|
|
|
|
// This test creates a temporary script to check plugin status
|
|
console.log('Creating script to check TEC plugin status...');
|
|
|
|
// Note: This is a conceptual test that would need server access
|
|
// In practice, you might need to check this via wp-cli or admin panel
|
|
|
|
// Navigate to a page that should have TEC functionality
|
|
await actions.navigateAndWait('/manage-event/');
|
|
|
|
// Check for plugin-specific classes or attributes
|
|
const tecIndicators = [
|
|
'[class*="tribe-"]',
|
|
'[id*="tribe-"]',
|
|
'[data-plugin="the-events-calendar"]',
|
|
'script[src*="tribe-events"]'
|
|
];
|
|
|
|
console.log('Checking for TEC plugin indicators:');
|
|
for (const selector of tecIndicators) {
|
|
const count = await page.locator(selector).count();
|
|
if (count > 0) {
|
|
console.log(`✓ Found TEC indicator: ${selector} (${count} elements)`);
|
|
}
|
|
}
|
|
|
|
// The test passes if we found some form on the page
|
|
const hasForm = await page.locator('form').count() > 0;
|
|
expect(hasForm).toBe(true);
|
|
});
|
|
}); |