- Create test event setup scripts for staging environment - Implement extended trainer journey test with improved error handling - Add test data creation script to generate 5 events with varying prices - Update trainer journey tests to handle different success scenarios - Improve test resilience with flexible success indicator checks Co-authored-by: Ben Reed <ben@tealmaker.com>
		
			
				
	
	
		
			138 lines
		
	
	
		
			No EOL
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			No EOL
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # Setup test data for trainer journey tests
 | |
| # This script creates test events, tickets, and attendees
 | |
| 
 | |
| # Configuration
 | |
| STAGING_URL="https://wordpress-974670-5399585.cloudwaysapps.com"
 | |
| MYSQL_DB="uqlfiqglqg"
 | |
| MYSQL_USER="uqlfiqglqg"
 | |
| MYSQL_PASS=""
 | |
| MYSQL_HOST="mysql-db6de9adb-wordpress-974670-5399585.cloudwaysapps.com"
 | |
| 
 | |
| echo "Setting up test data for trainer journey..."
 | |
| 
 | |
| # Function to execute MySQL commands
 | |
| mysql_exec() {
 | |
|     mysql -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASS" "$MYSQL_DB" -e "$1"
 | |
| }
 | |
| 
 | |
| # Get the test trainer user ID
 | |
| TRAINER_USER_ID=$(mysql_exec "SELECT ID FROM wp_users WHERE user_login = 'test_trainer' LIMIT 1;" | tail -n 1)
 | |
| 
 | |
| if [ -z "$TRAINER_USER_ID" ]; then
 | |
|     echo "Error: test_trainer user not found"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo "Found test_trainer user ID: $TRAINER_USER_ID"
 | |
| 
 | |
| # Create 5 test events
 | |
| EVENTS=(
 | |
|     "HVAC System Maintenance Workshop|Learn essential maintenance techniques|200|5|2025-02-01 09:00:00|2025-02-01 17:00:00"
 | |
|     "Advanced HVAC Diagnostics Training|Master diagnostic tools and techniques|500|12|2025-02-15 08:30:00|2025-02-15 18:30:00"
 | |
|     "HVAC Installation Best Practices|Professional installation methods|100|2|2025-03-01 10:00:00|2025-03-01 16:00:00"
 | |
|     "Commercial HVAC Systems Overview|Understanding large-scale systems|750|8|2025-03-15 09:00:00|2025-03-15 18:00:00"
 | |
|     "HVAC Energy Efficiency Certification|Green HVAC technologies|1000|20|2025-04-01 08:00:00|2025-04-01 17:00:00"
 | |
| )
 | |
| 
 | |
| # Current timestamp
 | |
| NOW=$(date '+%Y-%m-%d %H:%M:%S')
 | |
| 
 | |
| # Array to store event IDs
 | |
| EVENT_IDS=()
 | |
| 
 | |
| # Create events
 | |
| for event_data in "${EVENTS[@]}"; do
 | |
|     IFS='|' read -r title description price attendees start_date end_date <<< "$event_data"
 | |
|     
 | |
|     echo "Creating event: $title"
 | |
|     
 | |
|     # Insert event post
 | |
|     mysql_exec "INSERT INTO wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_status, post_type, post_name, post_modified, post_modified_gmt) 
 | |
|                 VALUES ($TRAINER_USER_ID, '$NOW', '$NOW', '$description', '$title', 'publish', 'tribe_events', LOWER(REPLACE('$title', ' ', '-')), '$NOW', '$NOW');"
 | |
|     
 | |
|     EVENT_ID=$(mysql_exec "SELECT LAST_INSERT_ID();" | tail -n 1)
 | |
|     EVENT_IDS+=($EVENT_ID)
 | |
|     
 | |
|     echo "Created event ID: $EVENT_ID"
 | |
|     
 | |
|     # Add event meta data
 | |
|     mysql_exec "INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES 
 | |
|                 ($EVENT_ID, '_EventStartDate', '$start_date'),
 | |
|                 ($EVENT_ID, '_EventEndDate', '$end_date'),
 | |
|                 ($EVENT_ID, '_EventStartDateUTC', '$start_date'),
 | |
|                 ($EVENT_ID, '_EventEndDateUTC', '$end_date'),
 | |
|                 ($EVENT_ID, '_EventDuration', TIMESTAMPDIFF(SECOND, '$start_date', '$end_date')),
 | |
|                 ($EVENT_ID, '_EventCost', '$price'),
 | |
|                 ($EVENT_ID, '_EventURL', ''),
 | |
|                 ($EVENT_ID, '_EventTimezone', 'America/New_York'),
 | |
|                 ($EVENT_ID, '_tribe_events_status', 'publish'),
 | |
|                 ($EVENT_ID, '_EventShowMap', '1'),
 | |
|                 ($EVENT_ID, '_EventShowMapLink', '1');"
 | |
|     
 | |
|     # Create test venue
 | |
|     mysql_exec "INSERT INTO wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_status, post_type, post_name) 
 | |
|                 VALUES ($TRAINER_USER_ID, '$NOW', '$NOW', '', 'HVAC Training Center $EVENT_ID', 'publish', 'tribe_venue', 'hvac-training-center-$EVENT_ID');"
 | |
|     
 | |
|     VENUE_ID=$(mysql_exec "SELECT LAST_INSERT_ID();" | tail -n 1)
 | |
|     
 | |
|     mysql_exec "INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES 
 | |
|                 ($VENUE_ID, '_VenueAddress', '123 Training St'),
 | |
|                 ($VENUE_ID, '_VenueCity', 'Training City'),
 | |
|                 ($VENUE_ID, '_VenueState', 'NY'),
 | |
|                 ($VENUE_ID, '_VenueZip', '12345'),
 | |
|                 ($VENUE_ID, '_VenueCountry', 'United States'),
 | |
|                 ($EVENT_ID, '_EventVenueID', '$VENUE_ID');"
 | |
|     
 | |
|     # Create test organizer
 | |
|     mysql_exec "INSERT INTO wp_posts (post_author, post_date, post_date_gmt, post_content, post_title, post_status, post_type, post_name) 
 | |
|                 VALUES ($TRAINER_USER_ID, '$NOW', '$NOW', '', 'Test Trainer Organization', 'publish', 'tribe_organizer', 'test-trainer-org-$EVENT_ID');"
 | |
|     
 | |
|     ORGANIZER_ID=$(mysql_exec "SELECT LAST_INSERT_ID();" | tail -n 1)
 | |
|     
 | |
|     mysql_exec "INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES 
 | |
|                 ($ORGANIZER_ID, '_OrganizerEmail', 'trainer@test.com'),
 | |
|                 ($ORGANIZER_ID, '_OrganizerPhone', '555-1234'),
 | |
|                 ($EVENT_ID, '_EventOrganizerID', '$ORGANIZER_ID');"
 | |
|     
 | |
|     # Create tickets for this event (if Event Tickets is installed)
 | |
|     # Note: This part depends on Event Tickets Plus plugin structure
 | |
|     
 | |
|     # Create attendees with fabricated information
 | |
|     for ((i=1; i<=attendees; i++)); do
 | |
|         FIRST_NAME="Attendee${i}"
 | |
|         LAST_NAME="Event${EVENT_ID}"
 | |
|         EMAIL="attendee${i}_event${EVENT_ID}@test.com"
 | |
|         
 | |
|         # Create user account for attendee
 | |
|         mysql_exec "INSERT INTO wp_users (user_login, user_pass, user_email, user_registered, display_name, user_nicename) 
 | |
|                     VALUES ('attendee_${EVENT_ID}_${i}', MD5('password123'), '$EMAIL', '$NOW', '$FIRST_NAME $LAST_NAME', 'attendee-${EVENT_ID}-${i}');"
 | |
|         
 | |
|         ATTENDEE_ID=$(mysql_exec "SELECT LAST_INSERT_ID();" | tail -n 1)
 | |
|         
 | |
|         # Add user meta
 | |
|         mysql_exec "INSERT INTO wp_usermeta (user_id, meta_key, meta_value) VALUES 
 | |
|                     ($ATTENDEE_ID, 'first_name', '$FIRST_NAME'),
 | |
|                     ($ATTENDEE_ID, 'last_name', '$LAST_NAME'),
 | |
|                     ($ATTENDEE_ID, 'wp_capabilities', 'a:1:{s:10:\"subscriber\";b:1;}'),
 | |
|                     ($ATTENDEE_ID, 'wp_user_level', '0');"
 | |
|         
 | |
|         # Create ticket/order record (simplified - actual implementation depends on Event Tickets structure)
 | |
|         mysql_exec "INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES 
 | |
|                     ($EVENT_ID, '_tribe_tickets_attendee_${i}', '$ATTENDEE_ID'),
 | |
|                     ($EVENT_ID, '_tribe_tickets_sold', '$i');"
 | |
|     done
 | |
|     
 | |
|     echo "Created $attendees attendees for event: $title"
 | |
| done
 | |
| 
 | |
| echo "Test data setup complete!"
 | |
| echo "Created ${#EVENT_IDS[@]} events with attendees"
 | |
| 
 | |
| # Display summary
 | |
| echo -e "\nEvent Summary:"
 | |
| for i in "${!EVENTS[@]}"; do
 | |
|     IFS='|' read -r title description price attendees start_date end_date <<< "${EVENTS[$i]}"
 | |
|     echo "- $title (ID: ${EVENT_IDS[$i]}): $attendees attendees @ \$$price each"
 | |
| done |