134 lines
		
	
	
		
			No EOL
		
	
	
		
			4.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			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' });
 | |
|     }
 | |
|   });
 | |
| }); |