upgrade: adopt V8.32.0-dev.1 (theme preview iframe fix, editor simple mode)
Overlay 46 upstream items; full patch set re-applied (all patched files reset by overlay regardless of upstream change status — lesson recorded). Verified: theme suites 35/35; dual-baseline 418 passed vs pristine 389+29 ours, FAILED-set diff EMPTY (same 10 Windows env fails). Live: container 8.32.0-dev.1 healthy, hesupipe 192 entries intact, trade-pro build 203 pages 0 errors. Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
"""Chromium isolation: exercise actual gallery controls / AJAX fallback; no live server."""
|
||||
from pathlib import Path
|
||||
import re,json
|
||||
from playwright.sync_api import sync_playwright
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
original=(ROOT/'app/templates/theme-gallery.html').read_text(encoding='utf-8')
|
||||
script=re.search(r'<script>(.*?)</script>',original,re.S).group(1)
|
||||
source=original.replace('<script>'+script+'</script>','')
|
||||
errors=[]
|
||||
with sync_playwright() as p:
|
||||
browser=p.chromium.launch(executable_path='/usr/bin/chromium',headless=True,args=['--no-sandbox','--disable-dev-shm-usage'])
|
||||
page=browser.new_page(viewport={'width':1440,'height':900})
|
||||
page.on('pageerror',lambda e:errors.append(str(e)))
|
||||
page.set_content(source)
|
||||
page.evaluate('''()=>{window.__galleryOk=true;window.fetch=async(url)=>{
|
||||
const isPreview=String(url).includes('/preview?'),success=!isPreview||window.__galleryOk;
|
||||
const data=[{version:'1.4.1'},{version:'1.4.0'}];
|
||||
return {ok:success,status:success?200:503,headers:{get:()=>isPreview?'text/html':'application/json'},json:async()=>data};
|
||||
}}''')
|
||||
page.add_script_tag(content=script)
|
||||
page.wait_for_function("document.querySelector('#preview').getAttribute('src')?.includes('page_type=home')")
|
||||
assert page.locator('#version option').count()==3
|
||||
page.evaluate('window.__galleryOk=false')
|
||||
page.locator('#page').select_option('product')
|
||||
page.wait_for_function("document.querySelector('#retryPreview').hidden===false")
|
||||
assert '503' in page.locator('#previewStatus').inner_text()
|
||||
assert 'page_type=product' in page.locator('#openPreview').get_attribute('href')
|
||||
assert not errors,errors
|
||||
page.set_viewport_size({'width':390,'height':844})
|
||||
assert not page.evaluate('document.documentElement.scrollWidth>innerWidth+1')
|
||||
browser.close()
|
||||
print(json.dumps({'gallery_controls':True,'versions':True,'retry_error':True,'mobile390':True,'javascript_errors':errors},ensure_ascii=False))
|
||||
Reference in New Issue
Block a user