upskill-event-manager/wordpress-dev/tests/e2e/verify-plugin-deployment.test.ts

134 lines
No EOL
4.9 KiB
TypeScript

import { test, expect } from '@playwright/test';
import { STAGING_URL } from './config/staging-config';
/**
* Test to verify the HVAC plugin has been successfully deployed with domain fixes
*/
test.describe('Verify Plugin Deployment', () => {
test('Check if HVAC plugin files are accessible after deployment', async ({ page }) => {
console.log('Step 1: Checking plugin file accessibility after deployment');
// Test plugin file access again
const pluginUrls = [
`${STAGING_URL}/wp-content/plugins/hvac-community-events/hvac-community-events.php`,
`${STAGING_URL}/wp-content/plugins/hvac-community-events/assets/css/hvac-dashboard.css`,
`${STAGING_URL}/wp-content/plugins/hvac-community-events/assets/js/hvac-dashboard.js`,
`${STAGING_URL}/wp-content/plugins/hvac-community-events/includes/zoho/zoho-config.php`
];
for (const url of pluginUrls) {
try {
const response = await page.request.get(url);
console.log(`${url}: ${response.status()} ${response.statusText()}`);
if (response.status() === 200) {
const content = await response.text();
console.log(` Content length: ${content.length} characters`);
// Check for specific fixes in zoho-config.php
if (url.includes('zoho-config.php')) {
const hasDynamicDomain = content.includes('get_site_url()') || content.includes('upskill-staging.measurequick.com');
console.log(` Contains domain fix: ${hasDynamicDomain}`);
}
}
} catch (error) {
console.log(`${url}: Error - ${error}`);
}
}
});
test('Check for HVAC plugin indicators on homepage', async ({ page }) => {
console.log('Step 2: Checking for HVAC plugin indicators after deployment');
await page.goto(STAGING_URL);
await page.waitForLoadState('networkidle');
// Check HTML source for plugin indicators
const htmlContent = await page.content();
// Plugin-specific indicators
const indicators = [
'hvac-community-events',
'hvac-dashboard',
'hvac-registration',
'trainer-profile',
'community-login'
];
let foundIndicators = 0;
for (const indicator of indicators) {
if (htmlContent.includes(indicator)) {
console.log(`✓ Found indicator: ${indicator}`);
foundIndicators++;
}
}
console.log(`Total HVAC indicators found: ${foundIndicators}`);
// Check for plugin assets loading
const cssLinks = await page.$$eval('link[rel="stylesheet"]', links =>
links.map(link => link.href).filter(href => href.includes('hvac'))
);
const jsScripts = await page.$$eval('script[src]', scripts =>
scripts.map(script => script.src).filter(src => src.includes('hvac'))
);
console.log(`HVAC CSS files loading: ${cssLinks.length}`);
console.log(`HVAC JS files loading: ${jsScripts.length}`);
if (cssLinks.length > 0) console.log('HVAC CSS files:', cssLinks);
if (jsScripts.length > 0) console.log('HVAC JS files:', jsScripts);
// Take screenshot for comparison
await page.screenshot({ path: 'test-results/deployment/post-deployment-homepage.png' });
});
test('Test WordPress REST API endpoints from HVAC plugin', async ({ page }) => {
console.log('Step 3: Testing HVAC plugin REST API endpoints');
// Test some potential API endpoints
const apiEndpoints = [
`${STAGING_URL}/wp-json/`,
`${STAGING_URL}/wp-json/wp/v2/`,
`${STAGING_URL}/wp-json/tribe/events/v1/`,
`${STAGING_URL}/wp-json/hvac/v1/`
];
for (const endpoint of apiEndpoints) {
try {
const response = await page.request.get(endpoint);
console.log(`${endpoint}: ${response.status()} ${response.statusText()}`);
if (response.status() === 200) {
const content = await response.text();
const hasHvacRoutes = content.includes('hvac') || content.includes('zoho');
console.log(` Contains HVAC routes: ${hasHvacRoutes}`);
}
} catch (error) {
console.log(`${endpoint}: Error - ${error}`);
}
}
});
test('Check WordPress admin redirect behavior', async ({ page }) => {
console.log('Step 4: Testing WordPress admin access');
await page.goto(`${STAGING_URL}/wp-admin/`);
await page.waitForLoadState('networkidle');
const currentUrl = page.url();
const isLoginPage = currentUrl.includes('wp-login.php');
console.log(`Redirected to login: ${isLoginPage}`);
console.log(`Current URL: ${currentUrl}`);
if (isLoginPage) {
// Check if we have the login form
const hasLoginForm = await page.locator('input[name="log"]').count() > 0;
console.log(`Login form present: ${hasLoginForm}`);
// Take screenshot of login page
await page.screenshot({ path: 'test-results/deployment/wp-login-page.png' });
}
});
});