Proje: OkulUp API · Hub: OkulUp API — Conventions

OkulUp API — Test Konvansiyonları

KRİTİK KURAL

Testleri lokalde çalıştırma! GitHub Actions CI’da çalışıyor. .env.testing dosyasına dokunma.

Test Yapısı

tests/
  TestCase.php           → abstract, RefreshDatabase + $seed = true
  Feature/Api/           → ~30 test dosyası, tek dizin

TestCase Konfigürasyonu

abstract class TestCase extends BaseTestCase
{
    use RefreshDatabase;
    protected bool $seed = true;  // DemoSeeder otomatik çalışır
}

→ Her test RefreshDatabase + seeder veriyle çalışır.
→ Seeder: DemoSeeder@okul.com.tr email’li demo kullanıcıları oluşturur.

Test Dosyaları (~30 adet)

AuthTest, UserTest, AnnouncementTest, EventTest, GalleryTest
AttendanceTest, AttendanceNotificationTest
PaymentTest, DashboardTest
AssignmentTest, AssignmentAttachmentTest, AssignmentProductionTest
MessageTest, BroadcastTest, ConversationReadTest, MessageAttachmentTest
NotificationTest, NotificationPreferenceTest, NotificationStandardizationTest
TrackingTest, AcademicReportTest, StudentAcademicSummaryV2Test
AppointmentTest, WeeklyScheduleTest
ReportExportTest, SchoolSettingTest, AuthorizationScopeTest
SecurityTest, MobileCompatibilityTest, CacheStrategyTest
HealthCheckTest, ParentStudentLinkTest, ForgotPasswordTest, DeleteAccountTest
AppConfigTest, PreferenceTest, DeviceTest

Komutlar

# Tek test dosyası:
vendor/bin/sail artisan test tests/Feature/Api/AssignmentTest.php
 
# Filter:
vendor/bin/sail artisan test --filter=testName
 
# ASLA tam suite'i gereksiz çalıştırma

Test Oluşturma

vendor/bin/sail artisan make:test --phpunit FeatureName
# PHPUnit class oluşturur (Pest değil)