upskill-event-manager/wordpress-dev/tests/e2e/docs/trainer-journey-testing.md
bengizmo 826555b326 test: Enhance trainer journey with certificate functionality
- Update trainer journey tests to include comprehensive certificate testing
- Add attendee search and filtering functionality to the test
- Implement certificate generation and viewing test steps
- Improve documentation with updated test coverage
- Create run script for trainer journey with certificates test
- Update test plan to reflect implemented features
2025-05-21 10:07:35 -03:00

6.2 KiB

Trainer Journey Testing Documentation

Overview

This document describes the comprehensive test suite for verifying the complete Trainer User Journey as specified in the HVAC Community Events requirements.

Test Coverage

The trainer journey test suite covers the following user journey steps:

Implemented Tests

  1. Trainer Login (Steps 1-2)

    • Navigate to community login page
    • Login with valid credentials
    • Verify redirect to dashboard
    • Test invalid credentials error handling
  2. Dashboard Access (Step 3)

    • Access trainer dashboard
    • Verify statistics display (row layout for better visual presentation)
    • Verify events table visibility
    • Test dynamic event filtering without page reload
    • Check navigation elements
  3. Event Management (Step 4)

    • Step 4a: Create new events with all required fields
    • Step 4b: View event list in My Events page
    • Step 4c: Modify existing events successfully
    • Step 4d: Delete events with confirmation
  4. Event Details (Step 5)

    • View individual event pages
    • Check event information display

In Progress

  1. Event Statistics (Step 6)

    • View event summary page
    • Check event details display
    • View transaction table
    • Access order information
  2. Attendee Details (Steps 7-8)

    • View attendee information
    • Navigate to order summary
    • Check transaction details

Recently Implemented

  1. Certificate Management (Steps 11-12)
    • Generate certificates for events
    • Filter certificates by event and attendee
    • View and download certificates
    • Advanced certificate management

Partially Implemented

  • Email Communication (Phase 2 - Step 9)
  • Attendee Check-in (Step 10)

Test Structure

Page Object Model

The test suite uses a Page Object Model (POM) for maintainability:

  • BasePage.ts - Common page functionality
  • LoginPage.ts - Login page interactions
  • DashboardPage.ts - Dashboard operations
  • CreateEventPage.ts - Event creation form
  • EventSummaryPage.ts - Event details viewing
  • ModifyEventPage.ts - Event modification
  • CertificatePage.ts - Certificate generation and management

Test Data Management

Test data is centralized in:

  • test-users.ts - Test user personas
  • test-events.ts - Event templates
  • CertificateTestData.ts - Certificate test data generation

Running the Tests

Command Line Options

# Run entire trainer journey test suite
./bin/run-tests.sh --trainer-journey

# Run trainer journey with certificates
npx playwright test tests/e2e/trainer-journey-with-certificates.test.ts

# Run individual test scenarios
./bin/run-tests.sh --e2e --grep @login
./bin/run-tests.sh --e2e --grep @dashboard
./bin/run-tests.sh --e2e --grep @create-event
./bin/run-tests.sh --e2e --grep @certificate

# Run certificate functionality tests only
node bin/certificate-test.js

Environment Requirements

  • Staging server must be accessible
  • Test trainer user must exist (test_trainer)
  • Required plugins must be activated
  • Environment variables must be set in .env

Test Results

Success Criteria

All tests pass when:

  • Each journey step completes successfully
  • Page navigation works correctly
  • Data is displayed accurately
  • Error scenarios are handled properly

Output

  • Console output shows test progress
  • Screenshots saved in test-results/screenshots/
  • Test report generated in test-results/

Error Handling

The test suite includes error scenario testing:

  • Invalid login credentials
  • Unauthorized access attempts
  • Missing data handling
  • Network timeout handling

Maintenance

Adding New Tests

  1. Create page object if needed
  2. Add test data to centralized files
  3. Write test scenario in trainer-journey.test.ts
  4. Update documentation

Updating Selectors

  1. Update page object selectors
  2. Test changes locally
  3. Verify on staging environment
  4. Commit changes with descriptive message

Troubleshooting

Common Issues

  1. Login Failures

    • Verify test user exists
    • Check password is correct
    • Ensure user has trainer role
  2. Navigation Errors

    • Verify page URLs are correct
    • Check staging server is accessible
    • Ensure plugins are activated
  3. Element Not Found

    • Update selectors in page objects
    • Check for page structure changes
    • Verify elements load properly

Debug Mode

Run tests with verbose output:

./bin/run-tests.sh --trainer-journey --debug

Implementation Summary (2025-05-21)

Key Achievements

  • Successfully implemented Steps 1-7 of trainer journey including certificates
  • All tests passing with robust error handling
  • Page Object Model architecture for maintainability
  • Comprehensive documentation and test data management
  • Certificate generation and management testing

Technical Challenges Resolved

  1. TinyMCE Editor: Implemented iframe/textarea fallback strategy
  2. Event Persistence: Adapted tests to verify in My Events page
  3. Form Handling: Robust field interaction with proper waits
  4. Navigation: Updated URLs to match actual application paths
  5. Dashboard UI: Improved responsive layout and dynamic filtering
  6. AJAX Filtering: Implemented filter functionality without page reload
  7. Certificate Generation: Successfully tested certificate creation for attendees
  8. Certificate Filtering: Implemented comprehensive filter testing
  9. Playwright Configuration: Addressed version conflicts and configuration issues

Test Artifacts

  • Main test files:
    • trainer-journey-final.test.ts - Original trainer journey
    • trainer-journey-with-certificates.test.ts - Enhanced journey with certificates
    • bin/certificate-test.js - Standalone certificate testing script
  • Screenshots: Login, dashboard, event creation, certificates, etc.
  • Test reports: Available in test-results/ directory

Future Enhancements

  1. Complete remaining journey steps (8-10)
  2. Enhance email communication testing (Phase 2 features)
  3. Add accessibility testing
  4. Implement performance metrics
  5. Add cross-browser testing
  6. Create visual regression tests
  7. Add API-level validation
  8. Implement continuous integration
  9. Improve certificate testing reliability
  10. Add certificate PDF content validation