Add v17.6.4 browser regressions

This commit is contained in:
pavlov346346-source 2026-09-07 19:59:34 +03:00
parent ad6025088d
commit 412c28b4fe

View File

@ -91,6 +91,61 @@ test('v17.6.3 developer gate bypasses workspace loading and SaaS click is safe',
const args=await page.evaluate(()=>window.__devOpenArgs); const args=await page.evaluate(()=>window.__devOpenArgs);
expect(args).toEqual(['null','null']); expect(args).toEqual(['null','null']);
}); });
test('v17.6.4 auto-completes and fully pays an order one minute after scheduled time', async ({ page }) => {
await page.addInitScript(()=>{
localStorage.setItem('sunOrders',JSON.stringify([{id:764,event:'Тест авто-завершения',date:'2026-09-07',time:'12:00',status:'Новый',prepayment:100,total:1500,lines:[]}]))
});
await page.goto('/index.html',{waitUntil:'domcontentloaded'});
await page.waitForFunction(()=>Boolean(window.SunUXFixV1764),null,{timeout:7000});
const result=await page.evaluate(()=>{
window.orderTotalValue=()=>1500;
const run=window.SunUXFixV1764.autoCompleteOrders(new Date('2026-09-07T12:01:01').getTime(),{silent:true});
const order=JSON.parse(localStorage.getItem('sunOrders')||'[]').find(x=>String(x.id)==='764');
return {run,prepayment:order?.prepayment,balance:order?.balance,status:order?.status,auto:Boolean(order?.sunAutoCompletedAt),classDate:window.SunUXFixV1764.classificationDate(order,'2026-09-07')};
});
expect(result.run.changed).toBe(1);
expect(result.prepayment).toBe(1500);
expect(result.balance).toBe(0);
expect(result.status).toBe('Отдан заказчику');
expect(result.auto).toBeTruthy();
expect(result.classDate).toBe('0001-01-01');
});
test('v17.6.4 keeps proposal designs per order and renders a styled menu icon', async ({ page }) => {
await page.addInitScript(()=>{
localStorage.setItem('sunOrders',JSON.stringify([
{id:801,event:'Editorial',date:'2026-09-08',time:'12:00',clientOfferSnapshot:{version:8,offerTemplateId:'editorial-grid'}},
{id:802,event:'Emerald',date:'2026-09-08',time:'13:00',clientOfferSnapshot:{version:8,offerTemplateId:'emerald-gold'}}
]));
});
await page.goto('/index.html',{waitUntil:'domcontentloaded'});
await page.waitForFunction(()=>Boolean(window.SunUXFixV1764)&&Boolean(document.querySelector('header nav .nav-menu')),null,{timeout:7000});
const result=await page.evaluate(()=>{
window.SunUXFixV1764.persistOfferTemplate('801','midnight-glass');
const list=JSON.parse(localStorage.getItem('sunOrders')||'[]');
const one=list.find(x=>String(x.id)==='801'),two=list.find(x=>String(x.id)==='802');
return {one:one?.clientOfferTemplateId,snapOne:one?.clientOfferSnapshot?.offerTemplateId,two:two?.clientOfferSnapshot?.offerTemplateId,icon:Boolean(document.querySelector('header nav .nav-menu .sun-v1764-menu-icon'))};
});
expect(result.one).toBe('midnight-glass');
expect(result.snapOne).toBe('midnight-glass');
expect(result.two).toBe('emerald-gold');
expect(result.icon).toBeTruthy();
});
test('Developer Console memory refresh is bounded and does not react to its own DOM update', async ({ page }) => {
await page.goto('/index.html',{waitUntil:'domcontentloaded'});
const performance=fs.readFileSync(path.join(process.cwd(),'public','core','performance.js'),'utf8');
await page.evaluate(()=>{
document.body.innerHTML='<section id="sun-developer-console-v22" class="on"><div id="sunDevBody"></div><span id="sunDevReleaseVersion"></span></section>';
window.__rpcCount=0;
window.SunCloudV2={getClient:()=>({rpc:async()=>{window.__rpcCount++;return {data:{server_size:'35 MB',database_size:'21 MB',storage_size:'14 MB',storage_objects:12}}}})};
});
await page.addScriptTag({content:performance});
await page.waitForFunction(()=>Boolean(window.SunPerformance),null,{timeout:5000});
await page.evaluate(async()=>{await window.SunPerformance.refreshDeveloperMemory(true);await new Promise(r=>setTimeout(r,250));});
const result=await page.evaluate(()=>({count:window.__rpcCount,box:document.querySelectorAll('#sunDevMemoryV1761').length,version:document.getElementById('sunDevReleaseVersion')?.textContent}));
expect(result.count).toBeLessThanOrEqual(2);
expect(result.box).toBe(1);
expect(result.version).toBe('17.6.4');
});
test('mobile body does not overflow viewport', async ({ page }, testInfo) => { test('mobile body does not overflow viewport', async ({ page }, testInfo) => {
test.skip(testInfo.project.name!=='mobile-390'); await page.goto('/index.html', { waitUntil:'domcontentloaded' }); await page.waitForTimeout(500); test.skip(testInfo.project.name!=='mobile-390'); await page.goto('/index.html', { waitUntil:'domcontentloaded' }); await page.waitForTimeout(500);
const dims=await page.evaluate(()=>({innerWidth,scrollWidth:document.documentElement.scrollWidth,bodyWidth:document.body.scrollWidth})); const dims=await page.evaluate(()=>({innerWidth,scrollWidth:document.documentElement.scrollWidth,bodyWidth:document.body.scrollWidth}));