完整测试覆盖 (49 路由, 0 崩溃): - 公开 desktop: 18/18 ✓ - 登录态 desktop: 17/17 ✓ (含 orderdetail/paynow/view-ticket/ocr-scan/renew-*) - mobile 视口: 14/14 ✓ (仅 /me 4px RenderFlex 溢出, 无害布局警告) 修复汇总 (本轮自动化发现+修复): 1. download Scrollbar 缺 ScrollPosition -> primary:true 2. contact-stores initState dispose 后 setState -> mounted 保护 3. buy-service onGenerateRoute pathElements 越界 RangeError -> 长度检查 4. add_remove_button/shopping_cart_* cartInfo 误加 ! (nullfix 脚本) 5. checkout table_token(tableNumber!) 无判空
22 lines
995 B
JavaScript
22 lines
995 B
JavaScript
const { chromium } = require('playwright');
|
|
(async () => {
|
|
const browser = await chromium.launch({ headless: true });
|
|
const ctx = await browser.newContext({ viewport: { width: 375, height: 812 } });
|
|
await ctx.addInitScript(([u,p]) => { localStorage['_test_token'] = u+'|'+p; }, ['6477108200','8818']);
|
|
const page = await ctx.newPage();
|
|
const logs = [];
|
|
page.on('console', m => logs.push(m.text()));
|
|
await page.goto('http://127.0.0.1:8099/', { waitUntil: 'load' });
|
|
await page.waitForSelector('canvas', { timeout: 90000 });
|
|
await page.reload({ waitUntil: 'load' });
|
|
await page.waitForTimeout(8000);
|
|
await page.goto('http://127.0.0.1:8099/me', { waitUntil: 'load' });
|
|
await page.waitForTimeout(6000);
|
|
const stacks = logs.filter(l => l.startsWith('CK_STACK:'));
|
|
for (const s of stacks) {
|
|
const proj = s.match(/flutter_wisetronic\/[^\s]+:\d+/g);
|
|
if (proj) console.log('RenderFlex 项目位置:', [...new Set(proj)].slice(0,3));
|
|
}
|
|
await browser.close();
|
|
})();
|