Tests

Cross-framework testing with E2E and unit tests.

Structure

Config: tests/config/
- Framework-specific Playwright configs
- playwright.config.base.js - Shared settings
- Individual configs for all 12 frameworks

E2E Tests: tests/e2e/
- weather-app-advanced.test.js - Comprehensive interaction testing
- Weather search functionality
- UI component interactions
- Error handling scenarios
- Mock API integration

Unit Tests: tests/unit/
- weather-app.test.js - App logic testing
- weather-service.test.js - Service layer testing
- test-runner.js - Custom test execution
- Framework-agnostic testing

Running Tests

# All frameworks
npm run test:all

# Individual frameworks  
npm run test:react
npm run test:vue
npm run test:angular
# etc...

# Specific test types
npm run test -- --grep "weather search"

Test Features

E2E Testing

Playwright-based: Reliable browser automation
- Cross-browser testing (Chrome, Firefox, Safari)
- Mobile device simulation
- Network condition testing
- Screenshot comparisons

Scenarios:
- Search functionality with various locations
- Weather data display and formatting
- Error states and loading indicators
- Responsive design validation
- Accessibility testing

Unit Testing

Framework-agnostic: Tests shared logic
- Weather service API calls
- Data formatting utilities
- Business logic validation
- Mock data handling

Mock Integration

Realistic data: Consistent across frameworks
- Weather API responses
- Error scenarios
- Edge cases (extreme temperatures, etc.)
- Location-based variations

Test Configuration

Shared config: Common Playwright settings
- Timeouts and retries
- Browser configurations
- Test data management
- Reporter settings

Framework-specific: Individual customizations
- Build process integration
- Dev server management
- Framework-specific selectors
- Performance thresholds

Reporting

Console output: Real-time test results
HTML reports: Detailed test reports with screenshots
CI integration: GitHub Actions workflow integration
Performance metrics: Load time measurements