diff --git a/docs/quality/evidence/qa-browser-acceptance-runtime.json b/docs/quality/evidence/qa-browser-acceptance-runtime.json index 895226d..4c38e0e 100644 --- a/docs/quality/evidence/qa-browser-acceptance-runtime.json +++ b/docs/quality/evidence/qa-browser-acceptance-runtime.json @@ -26,6 +26,9 @@ ], "icsImported": true, "icsPersistsAfterTabChange": true, + "readyPreparationStatus": 200, + "readyOutputButtons": 4, + "readyOutputButtonsEnabled": true, "overviewStatus": 200, "overviewFrames": 3 }, diff --git a/docs/quality/uygulama-durumu.md b/docs/quality/uygulama-durumu.md index 0cd58fd..99ccaa5 100644 --- a/docs/quality/uygulama-durumu.md +++ b/docs/quality/uygulama-durumu.md @@ -2111,4 +2111,4 @@ Doğrulama: 292/292 otomatik test ve üretim derlemesi başarılı. CI iş akışı da Chromium’u kurup bu koşucuyu her push ve pull request’te çalıştırıyor; tarayıcı kabulinin yalnızca geliştirici makinesinde geçmesine güvenilmiyor. -Doğrulama: giriş HTTP 200, beş şehrin tamamı görünür (her biri 3 eşleşme), ICS içe aktarma ve sekme değişimi sonrası kalıcılık başarılı, üç hazırlık özeti çerçevesi açıldı. +Doğrulama: giriş HTTP 200, beş şehrin tamamı görünür (her biri 3 eşleşme), ICS içe aktarma ve sekme değişimi sonrası kalıcılık başarılı, hazır taslakta dört çıktı düğmesi etkin, üç hazırlık özeti çerçevesi açıldı. diff --git a/tests/browser-acceptance.mjs b/tests/browser-acceptance.mjs index 451278a..c803d20 100644 --- a/tests/browser-acceptance.mjs +++ b/tests/browser-acceptance.mjs @@ -41,6 +41,15 @@ try { evidence.checks.icsPersistsAfterTabChange = await page.getByText('1 harici etkinlik içe aktarıldı.', { exact: true }).count() === 1; if (!evidence.checks.icsPersistsAfterTabChange) throw new Error('ICS kaydı sekme değişiminden sonra korunmadı.'); } finally { await rm(icsDir, { recursive: true, force: true }); } + const readyPage = await browser.newPage({ viewport: { width: 1440, height: 1000 } }); + try { + const readyResponse = await readyPage.goto(`${url.replace(/\/qa-signin$/, '')}/qa-source-update?ready=1&file=1`, { waitUntil: 'networkidle' }); + evidence.checks.readyPreparationStatus = readyResponse?.status(); + const outputButtons = readyPage.getByRole('button').filter({ hasText: /Teklif Mektubu|Birim Fiyat Teklif Cetveli|Excel Teklif Cetveli|Evrak Kontrol Listesi/ }); + evidence.checks.readyOutputButtons = await outputButtons.count(); + evidence.checks.readyOutputButtonsEnabled = await outputButtons.evaluateAll(buttons => buttons.every(button => !button.disabled)); + if (evidence.checks.readyOutputButtons !== 4 || !evidence.checks.readyOutputButtonsEnabled) throw new Error('Hazır taslak çıktı düğmeleri etkin değil.'); + } finally { await readyPage.close(); } const overview = await page.goto(`${url.replace(/\/qa-signin$/, '')}/qa-overview`, { waitUntil: 'networkidle' }); evidence.checks.overviewStatus = overview?.status(); evidence.checks.overviewFrames = await page.locator('iframe[title^="Hazırlık"]').count();