Modul 1 · Promise · async/await

await
Niyə Vacibdir?

await olmadan testlər yanlış sırada işləyir — bu bölmə bunu görünən edir

async/await Promise Flaky Test Qaydalar
AI with Rufat
PROBLEM — await olmadan

Kod Əvvəl Bitir, Əməliyyatlar Sonra

await olmayanda funksiyalar başlayır amma bitməsi gözlənmədən növbəti funksiyaya keçid olur. Aşağıdakı kod xətalıdır — 6 yerdə await çatışmır:

async function runTest() {
console.log('Test başlayır...');
fakePage.goto('/auth/login'); ← ❌ await yoxdur
console.log('Login səhifəsinə keçildi');
fakePage.waitForSelector('#email'); ← ❌ await yoxdur
fakePage.fill('#email', '...'); ← ❌ await yoxdur
fakePage.fill('#password', '...'); ← ❌ await yoxdur
fakePage.click('button[type=submit]'); ← ❌ await yoxdur
console.log('Login formu göndərildi');
fakePage.screenshot(); ← ❌ await yoxdur
console.log('Test tamamlandı!');
}
AI with Rufat
Nəticəni Müqayisə Edin
❌ await YOXdur
Windows PowerShell
Test başlayır...
Login səhifəsinə keçildi
Login formu göndərildi
Test tamamlandı!
Keçildi: /auth/login
Gözlənildi: #email
#email dolduruldu: ...
#password dolduruldu: ...
Klik edildi: button[type=submit]
Ekran görüntüsü alındı
Metod çıxışları "Test tamamlandı!"-dan SONRA gəldi
✅ await VAR
Windows PowerShell
Test başlayır...
Keçildi: /auth/login
Login səhifəsinə keçildi
Gözlənildi: #email
#email dolduruldu: ...
#password dolduruldu: ...
Klik edildi: button[type=submit]
Login formu göndərildi
Ekran görüntüsü alındı
Test tamamlandı!
Hər əməliyyat bitdikdən sonra növbəti başlayır
AI with Rufat
await — PAUSE EDİR VƏ GÖZLƏYİR

Zamanla Nə Baş Verir

❌ await OLMADAN
goto()
fill()
click()
← əməliyyatlar gecikir ⚠
console.log sətirləri — SÜRƏTLƏ QABAĞA GETDİ
Kod sətirləri → Əslində baş verən: metodlar çox sonra bitdi
✅ await İLƏ
await goto()
await fill()
await click()
✓ bitdi
Hər əməliyyat bitdikdən sonra növbəti başlayır
AI with Rufat
❌ Xətalı — await yoxdur
fakePage.goto('/auth/login');
// (await yoxdur)
fakePage.waitForSelector('#email');
fakePage.fill('#email', '...');
fakePage.fill('#password', '...');
fakePage.click('button[type="submit"]');
fakePage.screenshot();
Əməliyyatlar gözlənilmədən növbəti sətirə keçilir. Test yanlış sırada işləyir.
✅ Düzgün — await var
await fakePage.goto('/auth/login');
await fakePage.waitForSelector('#email');
await fakePage.fill('#email', '...');
await fakePage.fill('#password', '...');
await fakePage.click('button[type="submit"]');
await fakePage.screenshot();
Hər əməliyyat tamamlanır, sonra növbəti başlayır. Test etibarlı işləyir.
AI with Rufat

Qayda:
Hər await-i Unutmayın

await olmadan test uğursuzluqlarının 1 nömrəli səbəbi — flaky testlər

🔍
Tapşırıq 4-ü Həll Edin
6 əksik await tapın və düzəldin
📖
Stack Trace-i Oxuyun
Tapşırıq 5: xəta mesajlarını anlamaq
🎯
Modul 2-də
Bu bilikləri real Page Object-lərdə istifadə edəcəksiniz
AI with Rufat
← / → · space