simedkom/tests/README_WORKING_TESTS.md
Yoga Pangestu 97cdfd6e0b test: add comprehensive test suite and model factories
- Add HasFactory trait to all model classes for factory support
- Create factory classes for all models (Classification, Company, ContentRecap, Department, IssueManagement, Journalist, Location, MediaMonitoring, MediaMonitoringTheme, PartnerMedia, SubClassification, SubLocation, Theme, User)
- Add unit tests for all models with relationship and attribute validation
- Add unit tests for all enums (Channel, ContentType, IsActive, IssueSentiment, MediaClassification, MediaType, SocialMedia)
- Add feature tests for factory integration and basic application functionality
- Add tests for Filament actions, columns, and media library utilities
- Add tests for model policies (Classification, Theme) and traits (WithComment, WithValue)
- Update phpunit.xml configuration for test environment
- Add test documentation and working tests reference guide
- Add ContentType enum casting to ContentRecap model
- Add MediaMonitoringTheme relationships and factory support
- Establish comprehensive testing infrastructure for improved code quality and reliability
2025-12-11 14:50:37 +07:00

109 lines
4.0 KiB
Markdown

# Working Test Suite for SIMEDKOM
This is a clean, working test suite that has been verified to run without errors.
## ✅ Working Tests
### Unit Tests - Models (`tests/Unit/Models/`)
- `UserTest.php` - User model basic tests
- `ThemeTest.php` - Theme model with enum casting and relationships
- `ClassificationTest.php` - Classification model with relationships
- `SubClassificationTest.php` - Sub-classification model
- `LocationTest.php` - Location model with relationships
- `SubLocationTest.php` - Sub-location model
- `DepartmentTest.php` - Department model
- `CompanyTest.php` - Company model with relationships
- `PartnerMediaTest.php` - Partner media with enum casting
- `JournalistTest.php` - Journalist model
- `MediaMonitoringTest.php` - Media monitoring with relationships
- `IssueManagementTest.php` - Issue management with enum casting
- `ContentRecapTest.php` - Content recap model
- `MediaMonitoringThemeTest.php` - Pivot table model
### Unit Tests - Enums (`tests/Unit/Enums/`)
- `MediaTypeTest.php` - Media type enum with labels and options
- `IsActiveTest.php` - Active status enum with colors
- `IssueSentimentTest.php` - Issue sentiment enum with colors
- `ContentTypeTest.php` - Content type enum
- `MediaClassificationTest.php` - Media classification enum
- `ChannelTest.php` - Channel enum
- `SocialMediaTest.php` - Social media enum
### Feature Tests (`tests/Feature/`)
- `BasicFactoryTest.php` - Factory creation tests
- `ModelFactoryTest.php` - Simple model factory verification
## 🏭 Working Factories (`database/factories/`)
All factories are properly configured based on actual migration structures:
### Master Domain
- `ThemeFactory.php` - Creates themes with proper enum values
- `ClassificationFactory.php` - Creates classifications with descriptions
- `SubClassificationFactory.php` - Creates sub-classifications with relationships
- `LocationFactory.php` - Creates locations (cities/regions)
- `SubLocationFactory.php` - Creates sub-locations with relationships
- `DepartmentFactory.php` - Creates departments with aliases
### Manage Domain
- `CompanyFactory.php` - Creates companies with all required documents
- `PartnerMediaFactory.php` - Creates media partners with proper types
- `JournalistFactory.php` - Creates journalists with credentials
### Monitoring Domain
- `MediaMonitoringFactory.php` - Creates media monitoring entries
- `ContentRecapFactory.php` - Creates content recaps with social media data
- `IssueManagementFactory.php` - Creates issues with sentiment analysis
- `MediaMonitoringThemeFactory.php` - Creates pivot relationships
## 🚀 Running Tests
```bash
# Run all working tests
php artisan test
# Run specific test suites
php artisan test tests/Unit/Models
php artisan test tests/Unit/Enums
php artisan test tests/Feature
# Run specific test files
php artisan test tests/Feature/ModelFactoryTest.php
php artisan test tests/Unit/Models/ThemeTest.php
```
## ✨ Key Features
### Proper Enum Integration
- All enums use correct integer/string values from actual migrations
- Proper enum casting in models
- Label and color methods working correctly
### Realistic Test Data
- Indonesian government department names
- Indonesian media company names (Kompas, Detik, Tribun, etc.)
- Proper document number formats
- Social media platforms and channels
### Model Relationships
- All relationships properly tested
- Foreign key constraints respected
- Pivot table relationships working
### Factory States
- `active()` / `inactive()` states for models with is_active
- `validated()` / `rejected()` / `pending()` for Company
- `online()` / `print()` / `television()` / `radio()` for PartnerMedia
- `positive()` / `negative()` / `neutral()` / `crisis()` for IssueManagement
## 📋 Test Coverage
- ✅ All core models tested
- ✅ All enums tested
- ✅ All factories working
- ✅ Model relationships verified
- ✅ Enum casting verified
- ✅ Database constraints respected
This test suite provides a solid foundation for your SIMEDKOM project and can be extended as needed.