run browser acceptance outside Istanbul timezone
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"url": "http://127.0.0.1:5173/qa-signin",
|
||||
"checks": {
|
||||
"browserTimezone": "America/New_York",
|
||||
"signInStatus": 200,
|
||||
"visibleCities": [
|
||||
{
|
||||
|
||||
@@ -2248,3 +2248,9 @@ Doğrulama: 294 otomatik test, üretim derlemesi ve browser QA başarılı.
|
||||
İhale kaynak geçmişi, notlar, AI iş geçmişi, belge deposu, API anahtarları, bildirim abonelikleri ve kur/sağlayıcı kayıtlarındaki ISO zaman gösterimleri `Europe/Istanbul` ile sabitlendi. Kullanıcının cihaz saat dilimi artık aynı kaydın farklı gün/saat görünmesine neden olmuyor.
|
||||
|
||||
Doğrulama: 294 otomatik test, üretim derlemesi ve `git diff --check` başarılı. Farklı cihaz saat dilimlerinde görsel kabul ayrıca yapılmalı.
|
||||
|
||||
### 2026-09-06 · Farklı cihaz saat diliminde browser kabulü
|
||||
|
||||
Browser QA Playwright context’i `America/New_York` saat diliminde çalışacak şekilde ayarlandı; buna rağmen İstanbul tarih/saat akışları, günlük bülten, ICS, çıktı ve mobil viewport kontrolleri başarılı. Böylece önceki zaman standardizasyonu yalnızca Türkiye yerel cihazında değil, farklı cihaz saat diliminde de sınanıyor.
|
||||
|
||||
Doğrulama: browserTimezone `America/New_York`, mobil viewport 390 px ve yatay taşma yok; tüm kabul kontrolleri başarılı.
|
||||
|
||||
@@ -18,8 +18,10 @@ const url = await new Promise((resolve, reject) => {
|
||||
});
|
||||
|
||||
const browser = await chromium.launch({ headless: true });
|
||||
const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
|
||||
const evidence = { url, checks: {}, scope: 'Yerel sentetik QA; gerçek başvuru veya dış sağlayıcı çağrısı yapılmadı.' };
|
||||
const context = await browser.newContext({ timezoneId: 'America/New_York' });
|
||||
const page = await context.newPage();
|
||||
await page.setViewportSize({ width: 1440, height: 1000 });
|
||||
const evidence = { url, checks: { browserTimezone: 'America/New_York' }, scope: 'Yerel sentetik QA; gerçek başvuru veya dış sağlayıcı çağrısı yapılmadı.' };
|
||||
try {
|
||||
const response = await page.goto(url, { waitUntil: 'networkidle' });
|
||||
evidence.checks.signInStatus = response?.status();
|
||||
@@ -54,7 +56,8 @@ 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 } });
|
||||
const readyPage = await context.newPage();
|
||||
await readyPage.setViewportSize({ 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();
|
||||
@@ -80,7 +83,8 @@ 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 });
|
||||
const mobile = await context.newPage();
|
||||
await mobile.setViewportSize({ width: 390, height: 844 });
|
||||
try {
|
||||
const mobileResponse = await mobile.goto(url, { waitUntil: 'networkidle' });
|
||||
evidence.checks.mobileStatus = mobileResponse?.status();
|
||||
@@ -97,7 +101,7 @@ try {
|
||||
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');
|
||||
await page.close(); await context.close(); await browser.close(); server.kill('SIGTERM');
|
||||
}
|
||||
await mkdir('docs/quality/evidence', { recursive: true });
|
||||
await writeFile('docs/quality/evidence/qa-browser-acceptance-runtime.json', JSON.stringify(evidence, null, 2) + '\n');
|
||||
|
||||
Reference in New Issue
Block a user