cover mobile viewport in browser acceptance
This commit is contained in:
@@ -31,7 +31,14 @@
|
||||
"readyOutputButtonsEnabled": true,
|
||||
"printPopupTitle": "Evrak Kontrol Listesi",
|
||||
"overviewStatus": 200,
|
||||
"overviewFrames": 3
|
||||
"overviewFrames": 3,
|
||||
"mobileStatus": 200,
|
||||
"mobileOverflow": {
|
||||
"viewport": 390,
|
||||
"scrollWidth": 390,
|
||||
"horizontalOverflow": false
|
||||
},
|
||||
"mobileTenderList": true
|
||||
},
|
||||
"scope": "Yerel sentetik QA; gerçek başvuru veya dış sağlayıcı çağrısı yapılmadı."
|
||||
}
|
||||
|
||||
@@ -2134,3 +2134,9 @@ Doğrulama: giriş HTTP 200, beş şehrin tamamı görünür (her biri 3 eşleş
|
||||
Üretim kodunda kullanılmayan ve Türkçe karakterleri WinAnsi nedeniyle bozabilen eski `src/services/pdf.js`/jsPDF yolu kaldırıldı. Teklif belgelerinin üretim yolu artık Türkçe HTML ve tarayıcının yazdırma/PDF akışı; `bidDocs.js` açıklaması da bu durumu yansıtıyor. `jspdf` ve yalnız bu yola ait bağımlılıklar paket kilidinden çıkarıldı.
|
||||
|
||||
Doğrulama: jsPDF ve eski üreticiye kaynak referansı kalmadı; test ve üretim derlemesi başarılı. Gerçek resmi ihale dosyasıyla çok sayfalı PDF görsel kabulü ve beş resmi ihale başvurusu hâlâ açık işlerdir.
|
||||
|
||||
### 2026-09-06 · 390px mobil browser kabulü
|
||||
|
||||
Headless kabul koşucusuna 390×844 piksel görünüm eklendi. Giriş sonrası yatay taşma (`scrollWidth`), ihale listesi erişilebilir adı ve temel liste görünümü kontrol ediliyor. Bu kanıt gerçek iOS/Android cihaz performansı veya dokunmatik davranışının yerine geçmez.
|
||||
|
||||
Doğrulama: masaüstü ve mobil browser kabulü başarılı; mobil görünümde viewport 390 px, scrollWidth 390 px ve yatay taşma yok.
|
||||
|
||||
@@ -61,6 +61,22 @@ try {
|
||||
evidence.checks.overviewStatus = overview?.status();
|
||||
evidence.checks.overviewFrames = await page.locator('iframe[title^="Hazırlık"]').count();
|
||||
if (evidence.checks.overviewFrames !== 3) throw new Error('Hazırlık özeti üç görünüm alanında açılmadı.');
|
||||
const mobile = await browser.newPage({ viewport: { width: 390, height: 844 }, deviceScaleFactor: 1 });
|
||||
try {
|
||||
const mobileResponse = await mobile.goto(url, { waitUntil: 'networkidle' });
|
||||
evidence.checks.mobileStatus = mobileResponse?.status();
|
||||
const mobileOverflow = await mobile.evaluate(() => ({
|
||||
viewport: window.innerWidth,
|
||||
scrollWidth: document.documentElement.scrollWidth,
|
||||
horizontalOverflow: document.documentElement.scrollWidth > window.innerWidth + 1,
|
||||
}));
|
||||
evidence.checks.mobileOverflow = mobileOverflow;
|
||||
if (mobileOverflow.horizontalOverflow) throw new Error('390px görünümünde yatay taşma var.');
|
||||
await mobile.getByRole('button', { name: 'Test hesabıyla gir' }).click();
|
||||
await mobile.waitForLoadState('networkidle');
|
||||
evidence.checks.mobileTenderList = await mobile.getByLabel('İhale listesi').count() === 1;
|
||||
if (!evidence.checks.mobileTenderList) throw new Error('390px görünümünde ihale listesi bulunamadı.');
|
||||
} finally { await mobile.close(); }
|
||||
} finally {
|
||||
await page.close(); await browser.close(); server.kill('SIGTERM');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user