run browser acceptance outside Istanbul timezone
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"url": "http://127.0.0.1:5173/qa-signin",
|
"url": "http://127.0.0.1:5173/qa-signin",
|
||||||
"checks": {
|
"checks": {
|
||||||
|
"browserTimezone": "America/New_York",
|
||||||
"signInStatus": 200,
|
"signInStatus": 200,
|
||||||
"visibleCities": [
|
"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.
|
İ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ı.
|
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 browser = await chromium.launch({ headless: true });
|
||||||
const page = await browser.newPage({ viewport: { width: 1440, height: 1000 } });
|
const context = await browser.newContext({ timezoneId: 'America/New_York' });
|
||||||
const evidence = { url, checks: {}, scope: 'Yerel sentetik QA; gerçek başvuru veya dış sağlayıcı çağrısı yapılmadı.' };
|
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 {
|
try {
|
||||||
const response = await page.goto(url, { waitUntil: 'networkidle' });
|
const response = await page.goto(url, { waitUntil: 'networkidle' });
|
||||||
evidence.checks.signInStatus = response?.status();
|
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;
|
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ı.');
|
if (!evidence.checks.icsPersistsAfterTabChange) throw new Error('ICS kaydı sekme değişiminden sonra korunmadı.');
|
||||||
} finally { await rm(icsDir, { recursive: true, force: true }); }
|
} 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 {
|
try {
|
||||||
const readyResponse = await readyPage.goto(`${url.replace(/\/qa-signin$/, '')}/qa-source-update?ready=1&file=1`, { waitUntil: 'networkidle' });
|
const readyResponse = await readyPage.goto(`${url.replace(/\/qa-signin$/, '')}/qa-source-update?ready=1&file=1`, { waitUntil: 'networkidle' });
|
||||||
evidence.checks.readyPreparationStatus = readyResponse?.status();
|
evidence.checks.readyPreparationStatus = readyResponse?.status();
|
||||||
@@ -80,7 +83,8 @@ try {
|
|||||||
evidence.checks.overviewStatus = overview?.status();
|
evidence.checks.overviewStatus = overview?.status();
|
||||||
evidence.checks.overviewFrames = await page.locator('iframe[title^="Hazırlık"]').count();
|
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ı.');
|
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 {
|
try {
|
||||||
const mobileResponse = await mobile.goto(url, { waitUntil: 'networkidle' });
|
const mobileResponse = await mobile.goto(url, { waitUntil: 'networkidle' });
|
||||||
evidence.checks.mobileStatus = mobileResponse?.status();
|
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ı.');
|
if (!evidence.checks.mobileTenderList) throw new Error('390px görünümünde ihale listesi bulunamadı.');
|
||||||
} finally { await mobile.close(); }
|
} finally { await mobile.close(); }
|
||||||
} finally {
|
} 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 mkdir('docs/quality/evidence', { recursive: true });
|
||||||
await writeFile('docs/quality/evidence/qa-browser-acceptance-runtime.json', JSON.stringify(evidence, null, 2) + '\n');
|
await writeFile('docs/quality/evidence/qa-browser-acceptance-runtime.json', JSON.stringify(evidence, null, 2) + '\n');
|
||||||
|
|||||||
Reference in New Issue
Block a user