test: add preparation overview responsive fixture

This commit is contained in:
2026-09-06 16:19:43 +03:00
parent 158db529ae
commit fc4825e2f8
2 changed files with 19 additions and 0 deletions
+1
View File
@@ -1263,3 +1263,4 @@ Taslak türü seçicisine erişilebilir ad eklendi. Üretim derlemesi geçti. Ö
- D07 incelemesinde hazırlık özetindeki 700 piksel asgari tablo genişliği kaldırıldı. 768 piksel altındaki görünümde ihale, sorumlu, belge eksikleri ve sıradaki kontrol aynı kartta alt alta gösteriliyor; geniş ekranda karşılaştırmalı tablo devam ediyor. - D07 incelemesinde hazırlık özetindeki 700 piksel asgari tablo genişliği kaldırıldı. 768 piksel altındaki görünümde ihale, sorumlu, belge eksikleri ve sıradaki kontrol aynı kartta alt alta gösteriliyor; geniş ekranda karşılaştırmalı tablo devam ediyor.
- Eksiklere geçiş düğmeleri aynı veri ve olay işleyicilerini kullanıyor. Tablo/satır/hücre rolleri ve sütun başlıkları korunuyor; mobil görsel alan etiketleri ekran okuyucu için tekrar edilmiyor. Uzun kesintisiz metinler satıra bölünebiliyor. - Eksiklere geçiş düğmeleri aynı veri ve olay işleyicilerini kullanıyor. Tablo/satır/hücre rolleri ve sütun başlıkları korunuyor; mobil görsel alan etiketleri ekran okuyucu için tekrar edilmiyor. Uzun kesintisiz metinler satıra bölünebiliyor.
- Build ve diff kontrolü başarılı. 390/768/1440 piksel tarayıcı görsel kabulü, klavye ve gerçek ekran okuyucu doğrulaması henüz yapılmadı. Bu düzenleme tüm mobil kabulün geçtiği anlamına gelmez. Genel plan açık. - Build ve diff kontrolü başarılı. 390/768/1440 piksel tarayıcı görsel kabulü, klavye ve gerçek ekran okuyucu doğrulaması henüz yapılmadı. Bu düzenleme tüm mobil kabulün geçtiği anlamına gelmez. Genel plan açık.
- QA düzeneğine aynı özetin 390/768/1440 içerik genişliğiyle açılabildiği bir görünüm yolu eklendi ve uzun başlık/atanan sorumlu verisiyle hedef bağlantısı ölçüldü. Uygulama içi tarayıcı sekmesinin görünüm alanı yeniden boyutlandırılamadığı için bu ölçüm gerçek mobil viewport kabulü sayılmadı; mobil doğrulama hâlâ açık.
+18
View File
@@ -120,6 +120,24 @@ const ui=await createServer({server:{host:'127.0.0.1',port:0,proxy:{'/api':{targ
if(holdDocuments){outputDocumentReads++;if(skipDocumentReads>0)skipDocumentReads--;else{pendingDocuments.add(res);res.on('close',()=>pendingDocuments.delete(res));return;}} if(holdDocuments){outputDocumentReads++;if(skipDocumentReads>0)skipDocumentReads--;else{pendingDocuments.add(res);res.on('close',()=>pendingDocuments.delete(res));return;}}
if(qaFiles){res.writeHead(200,{'Content-Type':'application/json'});res.end(JSON.stringify({success:true,belgeler:qaFiles}));return;} if(qaFiles){res.writeHead(200,{'Content-Type':'application/json'});res.end(JSON.stringify({success:true,belgeler:qaFiles}));return;}
} }
if(req.url==='/qa-overview'){
res.setHeader('Content-Type','text/html; charset=utf-8');res.end(`<html lang="tr"><h1>Hazırlık özeti görünüm testi</h1>${[390,768,1440].map(width=>`<h2>${width} piksel</h2><iframe title="Hazırlık ${width}" src="/qa-overview-frame" style="display:block;width:${width}px;height:700px;border:0"></iframe>`).join('')}</html>`);return;
}
if(req.url?.startsWith('/qa-overview-frame')){
const frameWidth=new URL(req.url,'http://localhost').searchParams.get('width');
const widthStyle=/^(390|768|1440)$/.test(frameWidth||'')?` style="width:${frameWidth}px"`:'';
const cases=tenders.map((t,i)=>({...t,baslik:i===0?'QA Uzun laboratuvar cihazı '+ 'KesintisizÜrünKodu'.repeat(12):t.baslik,atananPersonel:i===0?'QA Sorumlu Uzman':'',takipte:true}));
const html=`<html lang="tr"><head><meta name="viewport" content="width=device-width,initial-scale=1"></head><body${widthStyle}><div id="root"></div><script type="module">
import React from '/node_modules/.vite/deps/react.js';
import ReactDOM from '/node_modules/.vite/deps/react-dom_client.js';
import {AppProvider,useApp} from '/src/context/AppContext.jsx';
import {PreparationOverview} from '/src/components/PreparationOverview.jsx';
import '/src/index.css';
function Probe(){const {activeTenderDetail}=useApp();return React.createElement('main',{},React.createElement(PreparationOverview,{tenders:${JSON.stringify(cases)},now:new Date('2026-09-06T09:00:00Z')}),React.createElement('p',{role:'status'},activeTenderDetail?'Seçilen hedef: '+activeTenderDetail.ikn+' / '+activeTenderDetail.preparationTarget:''));}
ReactDOM.createRoot(document.getElementById('root')).render(React.createElement(AppProvider,{},React.createElement(Probe)));
</script></body></html>`;
res.setHeader('Content-Type','text/html; charset=utf-8');res.end(await server.transformIndexHtml('/qa-overview-frame',html));return;
}
if(req.url==='/qa-source-update'||req.url==='/qa-source-update?ready=1'||req.url==='/qa-source-update?ready=1&file=1') { if(req.url==='/qa-source-update'||req.url==='/qa-source-update?ready=1'||req.url==='/qa-source-update?ready=1&file=1') {
const query=new URL(req.url,'http://localhost').searchParams; const query=new URL(req.url,'http://localhost').searchParams;
qaFiles=query.has('file')?[{...qaFile}]:null; qaFiles=query.has('file')?[{...qaFile}]:null;