# Yakıt Takip Sistemi - Test Rehberi ## 🎯 **Sistem Genel Bakış** KNOWLEDGE_BASE.md'deki iş akışlarına göre implement edilen tam fonksiyonel yakıt takip sistemi. ### 🚀 **Sunucu Durumu** - **Frontend**: `http://localhost:5005/` (SvelteKit) - **Backend**: `http://localhost:3005` (Express/Socket.IO) - **Status**: ✅ Çalışıyor ## 🔐 **Test Kullanıcıları** | Kullanıcı Adı | Şifre | Rol | Yetkiler | Yönlendirme | |---------------|--------|-----|----------|------------| | `admin` | `admin123` | Sistem Yöneticisi | Araç, birlik, personel yönetimi | `/dashboard` | | `fuel` | `fuel123` | Yakıt Sorumlusu | Fiş oluşturma, takip | `/fuel-slips` | | `goods` | `goods123` | Mal Sorumlusu | Fiş onay/reddetme | `/goods-manager` | ## 📋 **Test Senaryoları** ### 1. Admin Panel Testleri #### 1.1 Giriş Testi ```bash ✓ Adım 1: http://localhost:5173/ adresine git ✓ Adım 2: "admin" / "admin123" ile giriş yap ✓ Beklenen: /dashboard sayfasına yönlendirme ✓ Kontrol: Sol menüde "Yönetim Paneli" başlığı ``` #### 1.2 Araç Yönetimi Testi ```bash ✓ Adım 1: Sol menüden "Araç Yönetimi" seç ✓ Adım 2: Boş state kontrolü ("Henüz Araç Yok" mesajı) ✓ Adım 3: "Yeni Araç Ekle" butonuna tıkla ✓ Adım 4: Form doldur: - Marka: Toyota - Model: Corolla - Yıl: 2022 - Plaka: 34TEST123 ✓ Adım 5: "Kaydet" butonuna tıkla ✓ Beklenen: Araç kartları görüntülenmeli ✓ Adım 6: Araç kartındaki "Düzenle" butonunu test et ✓ Adım 7: Araç bilgilerini güncelle ✓ Adım 8: "Sil" butonunu test et ``` #### 1.3 Birlik Yönetimi Testi ```bash ✓ Adım 1: Sol menüden "Birlik Yönetimi" seç ✓ Adım 2: "Yeni Birlik Ekle" butonuna tıkla ✓ Adım 3: Form doldur: - Birlik Adı: 1. Test Birliği - Adres: Test Adresi - STK: STK-001 - BTK: BTK-001 - Sorumlu Bilgileri: * Adı Soyadı: Test Personel * Rütbesi: Yüzbaşı * Sicil: TEST001 * TC Kimlik: 12345678901 * İrtibat: 05321234567 ✓ Adım 4: "Kaydet" butonuna tıkla ✓ Beklenen: Birlik kartı görüntülenmeli ✓ Validasyon Testi: TC Kimlik 11 hane kontrolü ``` #### 1.4 Personel Yönetimi Testi ```bash ✓ Adım 1: Sol menüden "Yakıt Personeli" seç ✓ Adım 2: "Yeni Personel Ekle" butonuna tıkla ✓ Adım 3: Form doldur: - Adı Soyadı: Test Personel - Rütbesi: Üsteğmen - Sicil: TEST002 - TC Kimlik: 98765432109 - İrtibat: 05339876543 ✓ Adım 4: "Kaydet" butonuna tıkla ✓ Adım 5: Personel durumunu test et (Aktif/Pasif) ✓ Adım 6: "Pasif Yap" butonunu test et ``` #### 1.5 Mal Sorumluları Yönetimi Testi ```bash ✓ Adım 1: Sol menüden "Mal Sorumluları" seç ✓ Adım 2: Boş state kontrolü ("Henüz Mal Sorumlusu Yok" mesajı) ✓ Adım 3: "Yeni Mal Sorumlusu Ekle" butonuna tıkla ✓ Adım 4: Modal form doldur: - Adı Soyadı: Test Mal Sorumlusu - Rütbesi: Binbaşı - Sicil Numarası: GM001 - TC Kimlik: 12345678901 - İrtibat: 05321234567 - E-posta: test.mal@mil.tr ✓ Adım 5: "Kaydet" butonuna tıkla ✓ Beklenen: Mal sorumlusu kartı görüntülenmeli ✓ Adım 6: Mal sorumlusu kartındaki "Düzenle" butonunu test et ✓ Adım 7: Mal sorumlusu bilgilerini güncelle ✓ Adım 8: "Pasif Yap/Aktif Yap" durum değiştirme testi ✓ Adım 9: "Sil" butonunu test et ✓ Validasyon Testleri: - TC Kimlik 11 hane kontrolü - E-posta format kontrolü - Sicil numarası tekrar kontrolü ``` ### 2. Yakıt Sorumlusu Testleri #### 2.1 Giriş ve Fiş Oluşturma ```bash ✓ Adım 1: "fuel" / "fuel123" ile giriş yap ✓ Beklenen: /fuel-slips sayfasına yönlendirme ✓ Adım 2: Boş state kontrolü ("Henüz Fiş Yok" mesajı) ✓ Adım 3: "Yeni Fiş Oluştur" butonuna tıkla ✓ Adım 4: Modal form doldur: - Tarih: Bugünün tarihi - Kuvvet Komutanı: Test Komutan - Birlik: 1. Motorlu Piyade Tugayı (Admin ekledi) - Araç: Toyota Corolla (Admin ekledi) - Yakıt Türü: Benzin - Litre: 45 - KM: 125000 - Personel: Test Personel (Admin ekledi) - Notlar: Test yakıt ikmali ✓ Adım 5: "Fiş Oluştur" butonuna tıkla ✓ Beklenen: Başarı mesajı ve fiş kartı ``` #### 2.2 Fiş Durumları Testi ```bash ✓ Adım 1: Oluşturulan fişin durumunu kontrol et ("Beklemede") ✓ Adım 2: PDF İndir butonunu test et (placeholder) ✓ Adım 3: Filtreleme testi ✓ Adım 4: Tarih sıralaması testi ``` ### 3. Mal Sorumlusu Testleri #### 3.1 Giriş ve Atanan Fişler ```bash ✓ Adım 1: "goods" / "goods123" ile giriş yap ✓ Beklenen: /goods-manager sayfasına yönlendirme ✓ Adım 2: Sol menüde "Onay Paneli" başlığı ✓ Adım 3: Yakıt sorumlusunun oluşturduğu fişi bekle ✓ Beklenen: Atanan fişin listelenmesi ✓ Adım 4: Öncelik sistemi testi: - 50L altı: Düşük öncelik (yeşil) - 50-100L: Orta öncelik (sarı) - 100L üstü: Yüksek öncelik (kırmızı) ``` #### 3.2 Onay ve Reddetme Testleri ```bash ✓ Onay Testi: ✓ Adım 1: "Onayla" butonuna tıkla ✓ Adım 2: Onay modalini kontrol et ✓ Adım 3: Onay notu ekle (opsiyonel) ✓ Adım 4: "Onayla" butonuna tıkla ✓ Beklenen: "Onaylı" durumuna geçiş ✓ Reddetme Testi: ✓ Adım 1: "Reddet" butonuna tıkla ✓ Adım 2: Reddetme modalini kontrol et ✓ Adım 3: Red gerekçesi gir (zorunlu) ✓ Adım 4: "Reddet" butonuna tıkla ✓ Beklenen: "Reddedildi" durumuna geçiş ve gerekçe görünümü ``` ### 4. Cross-Role Testleri #### 4.1 Rol Değiştirme Testi ```bash ✓ Adım 1: Admin olarak çıkış yap ✓ Adım 2: Fuel Manager olarak giriş yap ✓ Adım 3: Fiş oluştur ✓ Adım 4: Çıkış yap ✓ Adım 5: Goods Manager olarak giriş yap ✓ Adım 6: Oluşturulan fişi onayla ✓ Adım 7: Çıkış yap ✓ Adım 8: Admin olarak giriş yap ✓ Adım 9: Fiş durumunu kontrol et ("Onaylı") ``` #### 4.2 Yetki Kontrol Testi ```bash ✓ Fuel Manager testleri: ✓ Araç yönetimi sayfasına erişim denemesi → 403 ✓ Birlik yönetimi sayfasına erişim denemesi → 403 ✓ Personel yönetimi sayfasına erişim denemesi → 403 ✓ Goods Manager testleri: ✓ Araç yönetimi sayfasına erişim denemesi → 403 ✓ Birlik yönetimi sayfasına erişim denemesi → 403 ✓ Personel yönetimi sayfasına erişim denemesi → 403 ✓ Mal sorumluları yönetimi sayfasına erişim denemesi → 403 ✓ Admin testleri: ✓ Tüm sayfalara erişim ✅ ``` ### 5. Responsive Tasarım Testleri #### 5.1 Mobil Görünüm Testi ```bash ✓ Adım 1: Tarayıcıyı daralt (mobile view) ✓ Adım 2: Menu butonunun görünürlüğü ✓ Adım 3: Mobil menü açma/kapama ✓ Adım 4: Form alanlarının mobil uyumluluğu ✓ Adım 5: Buton boyutlarının dokunma için uygunluğu ``` #### 5.2 Tablet Görünüm Testi ```bash ✓ Adım 1: Tarayıcıyı tablet boyutuna getir ✓ Adım 2: Layout'ın adaptasyonu ✓ Adım 3: Grid sistem çalışması ``` ### 6. Form Validasyon Testleri #### 6.1 Zorunlu Alan Testleri ```bash ✓ Araç formu: ✓ Boş marka → Hata mesajı ✓ Boş plaka → Hata mesajı ✓ Birlik formu: ✓ Boş birlik adı → Hata mesajı ✓ Geçersiz TC → Hata mesajı ✓ Mal sorumlusu formu: ✓ Boş ad soyad → Hata mesajı ✓ Boş rütbe → Hata mesajı ✓ Boş sicil numarası → Hata mesajı ✓ Geçersiz TC Kimlik (11 hane değil) → Hata mesajı ✓ Geçersiz e-posta formatı → Hata mesajı ✓ Boş irtibat numarası → Hata mesajı ✓ Fiş formu: ✓ Boş litre → Hata mesajı ✓ Negatif KM → Hata mesajı ✓ Boş personel → Hata mesajı ``` #### 6.2 Veri Format Testleri ```bash ✓ TC Kimlik: 11 hane kontrolü ✓ E-posta: Format kontrolü (@ ve . içermeli) ✓ Sicil numarası: Tekrar kontrolü ✓ Plaka: Format kontrolü ✓ Sayısal alanlar: Negatif değer kontrolü ✓ Tarih: Geçerli tarih aralığı ``` ### 7. Hata Yönetimi Testleri #### 7.1 Bağlantı Hataları ```bash ✓ Backend kapalıyken API çağrıları ✓ Hata mesajlarının kullanıcı dostu olması ✓ Loading state'lerin düzgün çalışması ``` #### 7.2 Edge Case Testleri ```bash ✓ Çok uzun metin girişleri ✓ Özel karakterli veriler ✓ Çok hızlı art arda buton tıklamaları ✓ Browser refresh durumları ``` ## 🔧 **Troubleshooting** ### Yaygın Sorunlar 1. **404 Hatası**: Sayfa bulunamadı - ✅ Çözüm: Sunucunun çalıştığını kontrol et (`npm run dev`) 2. **Erişim Reddedildi**: Yetki hatası - ✅ Çözüm: Doğru kullanıcı adı/şifre ile giriş yap 3. **Form Gönderilmiyor**: Validasyon hatası - ✅ Çözüm: Tüm zorunlu alanları doldur 4. **Veri Gözükmüyor**: API hatası - ✅ Çözüm: Browser console'da hata mesajlarını kontrol et ### Debug Adımları 1. **Console Kontrolü**: F12 → Console sekmesi 2. **Network Kontrolü**: F12 → Network sekmesi 3. **Storage Kontrolü**: F12 → Application → Local Storage 4. **Backend Logları**: Terminal çıktısını kontrol et ## 📊 **Test Sonuçları Template** ``` Test Tarihi: ___________ Test Edilen: ___________ Sonuç: ✅ Başarılı / ❌ Başarısız Notlar: - Test adımları - Beklenen sonuçlar - Gerçekleşen sonuçlar - Hata mesajları - Ekran görüntüleri ``` ## 🎯 **Başarı Kriterleri** - ✅ Tüm kullanıcı rolleri giriş yapabiliyor - ✅ Role-based yönlendirme çalışıyor - ✅ Form validasyonları doğru çalışıyor - ✅ CRUD işlemleri tamamlanıyor - ✅ Responsive tasarım tüm cihazlarda çalışıyor - ✅ Hata mesajları kullanıcı dostu - ✅ Cross-role iş akışları tamamlanıyor