# ๐Ÿ“‹ TESTING CHECKLIST - TelurKu Firebase Integration ## โœ… Konfigurasi yang Sudah Selesai ### 1. Logo โœ… - [x] Path updated: `assets/icons/telurku.png` - [x] Logo akan ditampilkan di Landing Page dalam container circular putih - [x] Fallback emoji jika file tidak ditemukan ### 2. Firebase Configuration โœ… - [x] Firebase Core terintegrasi di main.dart - [x] Firebase Options untuk Android sudah dikonfigurasi - Project ID: `telurku-fa78c` - API Key: `AIzaSyCwF_fiwc1Cpsy570bvCYijRjHi1sd8n8U` - App ID: `1:22111260761:android:d9b30f13c92df54a002148` - Messaging Sender ID: `22111260761` - [x] Firebase Options method sudah mendukung multiple platform (Android, iOS, Web, Windows, Linux, macOS) - [x] Platform auto-detection sudah bekerja ### 3. Authentication โœ… - [x] Firebase Auth Provider sudah siap - [x] Email/Password authentication ready - [x] Error handling dengan pesan Bahasa Indonesia - [x] Auto-redirect based on login status ### 4. UI/UX โœ… - [x] Landing Page dengan logo dan tombol Masuk/Daftar - [x] Login Page dengan form validation - [x] Signup Page dengan form lengkap - [x] Home/Dashboard Page setelah login - [x] Design sudah sesuai dengan mockup --- ## ๐Ÿงช TEST PLAN ### **Test 1: Landing Page Loading** **Expected Result:** - [ ] Aplikasi membuka ke Landing Page - [ ] Logo TelurKu (`telurku.png`) tampil di container circular putih - [ ] Taxt "TelurKu" dan tagline "Kelola Peternakan Ayam Anda dengan Mudah" terlihat - [ ] Tombol "Masuk" berwarna kuning (#F4D03F) - [ ] Tombol "Daftar Akun Baru" berwarna oranye border ```dart // Testing code untuk cek di console print('Landing Page Loaded: Logo path = assets/icons/telurku.png'); ``` --- ### **Test 2: Navigation - Masuk Button** **Steps:** 1. Klik tombol "Masuk" di Landing Page 2. Tunggu 1 detik untuk transition **Expected Result:** - [ ] Navigasi ke Login Page berhasil - [ ] Login Page menampilkan field Email dan Password - [ ] Form sudah siap untuk input --- ### **Test 3: Navigation - Daftar Button** **Steps:** 1. Dari Landing Page, klik "Daftar Akun Baru" 2. Atau dari Login Page, klik "Daftar di sini" **Expected Result:** - [ ] Navigasi ke Signup Page berhasil - [ ] Form daftar dengan field: Nama, Email, Password, Konfirmasi Password - [ ] Checkbox Terms & Conditions muncul --- ### **Test 4: Signup dengan Firebase Connection** **Steps:** 1. Buka Signup Page 2. Isi form: ``` Nama: Test User Email: testuser@example.com Password: Test@123456 Konfirmasi Password: Test@123456 โœ“ Setuju Terms ``` 3. Klik tombol "Daftar" **Expected Result:** - [ ] Loading indicator muncul di tombol - [ ] Tidak ada error (seharusnya) - [ ] Setelah sukses, otomatis login - [ ] Navigate ke Home Page - [ ] Greeting menampilkan "Test User" **Jika Ada Error:** - [ ] Catat error message - [ ] Check Firebase Console untuk melihat user baru di Authentication - [ ] Verifikasi credentials di `lib/firebase_options.dart` --- ### **Test 5: Login dengan Firebase Connection** **Steps:** 1. Buka Landing Page 2. Klik "Masuk" 3. Isi form: ``` Email: testuser@example.com Password: Test@123456 ``` 4. Klik tombol "Masuk" **Expected Result:** - [ ] Loading indicator muncul - [ ] Firebase Auth berhasil autentikasi - [ ] Redirect ke Home Page - [ ] Greeting menampilkan "Test User" - [ ] User avatar berisi huruf "T" --- ### **Test 6: Error Handling - Wrong Password** **Steps:** 1. Go to Login Page 2. Isi dengan email benar tapi password salah: ``` Email: testuser@example.com Password: WrongPassword123 ``` 3. Klik "Masuk" **Expected Result:** - [ ] Error message: "Password salah." - [ ] SnackBar/Toast menampilkan error - [ ] Tetap di Login Page (tidak proceed) --- ### **Test 7: Error Handling - Email Not Found** **Steps:** 1. Go to Login Page 2. Isi dengan email yang belum terdaftar: ``` Email: notregistered@example.com Password: Password123 ``` 3. Klik "Masuk" **Expected Result:** - [ ] Error message: "Email tidak terdaftar." - [ ] SnackBar menampilkan error - [ ] Tetap di Login Page --- ### **Test 8: Logout** **Steps:** 1. Setelah login, berada di Home Page 2. Klik avatar profile di top-right appbar 3. Pilih "Logout" **Expected Result:** - [ ] Loading indicator muncul sebentar - [ ] Redirect ke Landing Page - [ ] Tidak ada data user yang tersimpan --- ### **Test 9: Firebase Console Verification** **Steps:** 1. Buka [Firebase Console](https://console.firebase.google.com/) 2. Pilih project "telurku-fa78c" 3. Go to Authentication tab **Expected Result:** - [ ] User yang didaftar melalui app muncul di list - [ ] Email dan Timestamp sudah tercatat - [ ] Sign-in method: Email/Password --- ## ๐Ÿ› ๏ธ Troubleshooting ### **Error: "Firebase initialization failed"** **Cause:** firebase_options.dart credentials tidak match dengan Firebase project **Solution:** 1. Buka Firebase Console 2. Go to Project Settings 3. Bandingkan dengan `lib/firebase_options.dart` 4. Update manual jika ada perbedaan ### **Error: "Null check operator used on a null value"** **Cause:** Login state belum loading **Solution:** 1. Tunggu dialog loading selesai 2. Cek internet connection 3. Restart app (R untuk Hot Restart) ### **Error: "CORS error" (Web platform)** **Cause:** Web Firebase configuration belum setup **Solution:** 1. Update `firebase_options.dart` web credentials 2. Setup Firebase untuk web platform di Console 3. Enable Authorization header di CORS ### **Logo tidak tampil** **Cause:** Asset path atau file tidak ada **Solution:** ``` 1. Verify file ada di: assets/icons/telurku.png 2. Run: flutter clean && flutter pub get 3. Hot Restart (Shift+Ctrl+F5) ``` --- ## ๐Ÿ“Š Firebase Connection Status ### Android โœ… READY - Project ID: `telurku-fa78c` - Authentication: Email/Password โœ… - Firestore: Ready (optional) - App ID: `1:22111260761:android:d9b30f13c92df54a002148` ### iOS โš ๏ธ PENDING - Needs: GoogleService-Info.plist - Setup: Generate from Firebase Console - Status: Not yet configured ### Web โš ๏ธ PENDING - Needs: Web API Key & credentials - Setup: Add to firebase_options.dart - Status: Placeholder only ### Windows โš ๏ธ PENDING - Status: Requires Developer Mode on Windows - Note: Not required for MVP --- ## ๐Ÿš€ How to Run Tests ### **Method 1: Android Physical Device** ```bash # Connect Android device via USB flutter devices flutter run -d ``` ### **Method 2: Android Emulator** ```bash # Open Android Emulator first, then: flutter run -d emulator-5554 ``` ### **Method 3: Chrome Web (Limited)** ```bash # Will work after web Firebase config flutter run -d chrome ``` ### **Method 4: Windows Desktop (Requires Developer Mode)** ```bash # Enable Developer Mode first, then: flutter run -d windows ``` --- ## โœจ Test Results Template ```markdown ### Test Run: [DATE] #### Environment: - Device: [Android/iOS/Web/Windows] - Flutter Version: [VERSION] - Firebase Project: telurku-fa78c #### Results: - Landing Page: โœ…/โŒ - Logo Display: โœ…/โŒ - Navigation (Login): โœ…/โŒ - Navigation (Signup): โœ…/โŒ - Signup + Firebase: โœ…/โŒ - Login + Firebase: โœ…/โŒ - Error Handling: โœ…/โŒ - Logout: โœ…/โŒ - Firebase Console: โœ…/โŒ #### Issues Found: 1. [Issue description] 2. [Issue description] #### Notes: [Additional observations] ``` --- ## ๐Ÿ“ Command Reference | Command | Purpose | |---------|---------| | `flutter clean` | Clear build cache | | `flutter pub get` | Install dependencies | | `flutter run -d ` | Run app | | `r` | Hot reload | | `R` | Hot restart | | `q` | Quit app | | `flutter devices` | List available devices | --- ## ๐ŸŽฏ Next Steps After Testing 1. โœ… Verify Firebase connection for Android 2. โณ Setup Firebase for iOS (if needed) 3. โณ Setup Firebase for Web (if needed) 4. โณ Add Real-time Database features 5. โณ Implement dashboard with live data --- **Last Updated:** 13 Feb 2026 **Status:** Ready for Testing โœ