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

218 lines
No EOL
6.2 KiB
Markdown

# 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 ⏳
5. **Event Statistics (Step 6)**
- View event summary page
- Check event details display
- View transaction table
- Access order information
6. **Attendee Details (Steps 7-8)**
- View attendee information
- Navigate to order summary
- Check transaction details
### Recently Implemented ✅
7. **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
```bash
# 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:
```bash
./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