upskill-event-manager/scripts/verify-test-data.sh
bengizmo 705e6b563c feat: Implement Training Leads system and restructure navigation menu
- Add comprehensive Training Leads system for HVAC trainers
  * New /trainer/training-leads/ page with tabular contact submission display
  * HVAC_Training_Leads class with AJAX status updates and filtering
  * Empty state messaging and profile sharing CTA
  * Database integration with existing contact forms system

- Restructure trainer navigation menu for better UX
  * Rename "Customize" to "Profile" with logical groupings
  * Move "Logout" under "Profile" submenu
  * Change "Personal Profile" to "Trainer Profile"
  * Add "Training Leads" under Profile section
  * Update help menu to show only question mark icon positioned far right

- Enhance documentation system
  * Fix /trainer/documentation/ page styling and navigation integration
  * Update content to reflect current platform features
  * Add Training Leads documentation and navigation guide
  * Implement proper WordPress template structure

- Update user management
  * Change joe@upskillhvac.com display name to "Joe Medosch"
  * Assign Joe as author of measureQuick headquarters venue
  * Assign Joe as author of measureQuick and Upskill HVAC organizers

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-05 16:02:57 -03:00

295 lines
No EOL
9.3 KiB
Bash
Executable file

#!/bin/bash
# Test Data Verification Script
# Checks what test data exists in staging environment
# Use this before/after cleanup to verify the process
source .env
echo "========================================="
echo "🔍 TEST DATA VERIFICATION"
echo "========================================="
echo "Target: $UPSKILL_STAGING_IP"
echo ""
# Upload and execute verification PHP script
sshpass -p "$UPSKILL_STAGING_PASS" scp -o StrictHostKeyChecking=no /dev/stdin $UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP:tmp/verify-test-data.php << 'PHPEOF'
<?php
/**
* Test Data Verification Script
*
* Checks for presence of test data in the system
*/
require_once('wp-load.php');
echo "=== Test Data Verification Report ===\n\n";
// 1. CHECK TEST USERS
echo "👥 TEST USERS:\n";
echo "================\n";
$test_users = [
'test_trainer' => 'login',
'joemedosch' => 'login',
'JoeMedosch@gmail.com' => 'email'
];
$found_users = 0;
foreach ($test_users as $identifier => $type) {
$user = ($type === 'email') ? get_user_by('email', $identifier) : get_user_by('login', $identifier);
if ($user) {
echo "✅ Found: {$user->user_login} ({$user->user_email}) - Roles: " . implode(', ', $user->roles) . "\n";
$found_users++;
} else {
echo "❌ Not found: {$identifier}\n";
}
}
// Check joe@measurequick.com for HVAC roles
$joe_mq = get_user_by('email', 'joe@measurequick.com');
if ($joe_mq) {
$hvac_roles = array_intersect(['hvac_trainer', 'hvac_master_trainer'], $joe_mq->roles);
if (!empty($hvac_roles)) {
echo "⚠️ joe@measurequick.com has HVAC roles: " . implode(', ', $hvac_roles) . "\n";
$found_users++;
} else {
echo "✅ joe@measurequick.com has no HVAC roles\n";
}
} else {
echo "❌ joe@measurequick.com not found\n";
}
echo "\nTotal test users found: {$found_users}\n\n";
// 2. CHECK TEST EVENTS
echo "📅 TEST EVENTS:\n";
echo "================\n";
$test_event_patterns = [
'HVAC System Diagnostics',
'Commercial Refrigeration',
'Energy Efficient HVAC',
'Advanced HVAC Troubleshooting',
'HVAC Energy Efficiency Workshop',
'Commercial Refrigeration Systems',
'Residential HVAC Installation Best Practices',
'HVAC Controls and Automation'
];
$all_events = get_posts([
'post_type' => 'tribe_events',
'post_status' => 'any',
'posts_per_page' => -1
]);
$found_test_events = 0;
$recent_events = 0;
$six_months_ago = strtotime('-6 months');
foreach ($all_events as $event) {
$is_test_event = false;
// Check against known test patterns
foreach ($test_event_patterns as $pattern) {
if (stripos($event->post_title, $pattern) !== false) {
$is_test_event = true;
break;
}
}
// Check for test-like indicators
$test_indicators = ['test', 'training center', 'example', 'dummy', 'sample'];
$event_content = strtolower($event->post_title . ' ' . $event->post_content);
foreach ($test_indicators as $indicator) {
if (strpos($event_content, $indicator) !== false) {
$is_test_event = true;
break;
}
}
if ($is_test_event) {
$event_date = date('Y-m-d', strtotime($event->post_date));
echo "⚠️ Test Event: '{$event->post_title}' (ID: {$event->ID}, Created: {$event_date})\n";
$found_test_events++;
}
// Count recent events (created in last 6 months)
if (strtotime($event->post_date) > $six_months_ago) {
$recent_events++;
}
}
echo "\nTotal test events found: {$found_test_events}\n";
echo "Total recent events (last 6 months): {$recent_events}\n\n";
// 3. CHECK TEST ATTENDEES
echo "🎟️ TEST ATTENDEES:\n";
echo "===================\n";
$test_attendees = get_posts([
'post_type' => 'tribe_tpp_attendees',
'posts_per_page' => -1,
'meta_query' => [
'relation' => 'OR',
[
'key' => '_tribe_tickets_email',
'value' => '@example.com',
'compare' => 'LIKE'
],
[
'key' => '_tribe_tickets_email',
'value' => 'ben@tealmaker.com',
'compare' => '='
],
[
'key' => '_tribe_tickets_full_name',
'value' => 'Test',
'compare' => 'LIKE'
]
]
]);
echo "Test attendees found: " . count($test_attendees) . "\n";
if (count($test_attendees) > 0) {
echo "Sample test attendees:\n";
foreach (array_slice($test_attendees, 0, 5) as $attendee) {
$name = get_post_meta($attendee->ID, '_tribe_tickets_full_name', true);
$email = get_post_meta($attendee->ID, '_tribe_tickets_email', true);
$event_id = get_post_meta($attendee->ID, '_tribe_tpp_event', true);
$event = get_post($event_id);
$event_title = $event ? $event->post_title : 'Unknown Event';
echo " - {$name} ({$email}) for '{$event_title}'\n";
}
if (count($test_attendees) > 5) {
echo " ... and " . (count($test_attendees) - 5) . " more\n";
}
}
echo "\n";
// 4. CHECK TEST CERTIFICATES
echo "🏆 TEST CERTIFICATES:\n";
echo "=====================\n";
if (class_exists('HVAC_Certificate_Manager')) {
global $wpdb;
$certificate_table = $wpdb->prefix . 'hvac_certificates';
if ($wpdb->get_var("SHOW TABLES LIKE '$certificate_table'") === $certificate_table) {
$total_certificates = $wpdb->get_var("SELECT COUNT(*) FROM {$certificate_table}");
echo "Total certificates in database: {$total_certificates}\n";
// Check for test certificate files
$test_certificates = $wpdb->get_results("
SELECT * FROM {$certificate_table}
WHERE file_path LIKE '%test%'
OR file_path LIKE '%example%'
OR file_path LIKE '%demo%'
");
echo "Test certificates found: " . count($test_certificates) . "\n";
// Check for orphaned certificates (event doesn't exist)
$orphaned_certificates = $wpdb->get_results("
SELECT c.* FROM {$certificate_table} c
LEFT JOIN {$wpdb->posts} p ON c.event_id = p.ID
WHERE p.ID IS NULL
");
echo "Orphaned certificates (event deleted): " . count($orphaned_certificates) . "\n";
} else {
echo "Certificate table does not exist\n";
}
} else {
echo "HVAC Certificate Manager not available\n";
}
echo "\n";
// 5. CHECK TEST VENUES AND ORGANIZERS
echo "🏢 TEST VENUES & ORGANIZERS:\n";
echo "=============================\n";
$test_venues = get_posts([
'post_type' => 'tribe_venue',
'posts_per_page' => -1,
]);
$test_venue_count = 0;
foreach ($test_venues as $venue) {
$test_indicators = ['training center', 'test', 'example', 'demo'];
$venue_content = strtolower($venue->post_title . ' ' . $venue->post_content);
foreach ($test_indicators as $indicator) {
if (strpos($venue_content, $indicator) !== false) {
echo "⚠️ Test Venue: '{$venue->post_title}' (ID: {$venue->ID})\n";
$test_venue_count++;
break;
}
}
}
$test_organizers = get_posts([
'post_type' => 'tribe_organizer',
'posts_per_page' => -1,
]);
$test_organizer_count = 0;
foreach ($test_organizers as $organizer) {
$test_indicators = ['test', 'example', 'demo', 'training', 'sample'];
$organizer_content = strtolower($organizer->post_title . ' ' . $organizer->post_content);
foreach ($test_indicators as $indicator) {
if (strpos($organizer_content, $indicator) !== false) {
echo "⚠️ Test Organizer: '{$organizer->post_title}' (ID: {$organizer->ID})\n";
$test_organizer_count++;
break;
}
}
}
echo "Test venues found: {$test_venue_count}\n";
echo "Test organizers found: {$test_organizer_count}\n\n";
// SUMMARY
echo "========================================\n";
echo "📊 VERIFICATION SUMMARY\n";
echo "========================================\n";
echo "Test users: {$found_users}\n";
echo "Test events: {$found_test_events}\n";
echo "Test attendees: " . count($test_attendees) . "\n";
echo "Test venues: {$test_venue_count}\n";
echo "Test organizers: {$test_organizer_count}\n";
if (class_exists('HVAC_Certificate_Manager') && isset($test_certificates)) {
echo "Test certificates: " . count($test_certificates) . "\n";
echo "Orphaned certificates: " . count($orphaned_certificates) . "\n";
}
$total_test_items = $found_users + $found_test_events + count($test_attendees) + $test_venue_count + $test_organizer_count;
if (isset($test_certificates)) {
$total_test_items += count($test_certificates);
}
echo "========================================\n";
if ($total_test_items > 0) {
echo "⚠️ TEST DATA FOUND: {$total_test_items} items need cleanup\n";
echo "Run scripts/cleanup-test-data.sh to clean up before production.\n";
} else {
echo "✅ NO TEST DATA FOUND: Ready for production deployment!\n";
}
echo "========================================\n";
?>
PHPEOF
# Execute the verification script on the server
echo "Executing verification script on staging server..."
sshpass -p "$UPSKILL_STAGING_PASS" ssh -o StrictHostKeyChecking=no $UPSKILL_STAGING_SSH_USER@$UPSKILL_STAGING_IP "cd $UPSKILL_STAGING_PATH && php ../tmp/verify-test-data.php && rm ../tmp/verify-test-data.php"
echo ""
echo "✅ Test data verification completed!"