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

4.0 KiB

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

# 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.