Add complete Google Sheets integration system for HVAC Community Events: Core Components: - Google Sheets OAuth 2.0 authentication handler - Google Sheets manager for spreadsheet creation and data export - Admin interface with full UI for configuration and operations - Integration with Master Dashboard data aggregation Features Implemented: - Master Report generation with 4 tabs (Overview, Performance, Events, Revenue) - Event-specific spreadsheets with 3 tabs (Details, Attendees, Financial) - Connection status monitoring and testing - Report history tracking and management - AJAX endpoints for all operations - Responsive admin interface with loading states Integration Points: - Page creation during plugin activation (/google-sheets/) - Access control matching Master Dashboard permissions - Navigation integration from Master Dashboard - CSS loading and template support - Extended Master Dashboard data class with additional methods Configuration: - Template configuration file for Google Cloud setup - OAuth 2.0 flow with token management and refresh - Google Sheets API and Drive API integration - Secure token storage using WordPress options 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
80 lines
No EOL
3.1 KiB
TypeScript
80 lines
No EOL
3.1 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { CommonActions } from './utils/common-actions';
|
|
|
|
/**
|
|
* Simple Google Sheets Integration Test
|
|
*/
|
|
|
|
test.describe('Google Sheets Simple Test', () => {
|
|
|
|
test('Google Sheets page loads successfully', async ({ page }) => {
|
|
test.setTimeout(25000);
|
|
const actions = new CommonActions(page);
|
|
|
|
// Login as admin
|
|
await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await page.fill('#user_login', 'admin_trainer');
|
|
await page.fill('#user_pass', 'AdminTrainer#2025!');
|
|
await page.click('#wp-submit');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
console.log('✓ Admin login successful');
|
|
|
|
// Navigate to Google Sheets page
|
|
await page.goto('https://upskill-staging.measurequick.com/google-sheets/');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await actions.screenshot('google-sheets-page');
|
|
|
|
// Basic checks
|
|
const url = page.url();
|
|
console.log('Current URL:', url);
|
|
expect(url).toContain('google-sheets');
|
|
|
|
// Check if page has content
|
|
const bodyText = await page.textContent('body');
|
|
console.log('Page contains Google Sheets text:', bodyText.includes('Google Sheets') ? '✓' : '✗');
|
|
|
|
// Check for WordPress theme structure
|
|
const hasHeader = await page.locator('header, .site-header, #masthead').count() > 0;
|
|
const hasMain = await page.locator('main, .main, #main').count() > 0;
|
|
console.log('WordPress structure present:', hasHeader && hasMain ? '✓' : '✗');
|
|
|
|
// Check for shortcode content
|
|
const hasShortcodeContent = bodyText.includes('Google Sheets Integration') ||
|
|
bodyText.includes('Connection Status') ||
|
|
bodyText.includes('Master Report');
|
|
console.log('Shortcode content present:', hasShortcodeContent ? '✓' : '✗');
|
|
|
|
console.log('✓ Google Sheets page accessibility test completed');
|
|
});
|
|
|
|
test('Master Dashboard link to Google Sheets', async ({ page }) => {
|
|
test.setTimeout(20000);
|
|
const actions = new CommonActions(page);
|
|
|
|
// Login and go to Master Dashboard
|
|
await page.goto('https://upskill-staging.measurequick.com/wp-login.php');
|
|
await page.fill('#user_login', 'admin_trainer');
|
|
await page.fill('#user_pass', 'AdminTrainer#2025!');
|
|
await page.click('#wp-submit');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
await page.goto('https://upskill-staging.measurequick.com/master-dashboard/');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
// Check for Google Sheets link
|
|
const googleSheetsLinks = await page.locator('a[href*="google-sheets"], a:has-text("Google Sheets")').count();
|
|
console.log('Google Sheets links found in Master Dashboard:', googleSheetsLinks);
|
|
|
|
if (googleSheetsLinks > 0) {
|
|
console.log('✓ Google Sheets navigation available from Master Dashboard');
|
|
} else {
|
|
console.log('⚠ Google Sheets navigation not found in Master Dashboard');
|
|
}
|
|
|
|
await actions.screenshot('master-dashboard-google-sheets-nav');
|
|
});
|
|
}); |