verify-live-switch.mjs 1.3 KB

12345678910111213141516171819202122232425262728
  1. /** 验证:运行中改变窗口宽度会自动切换端 */
  2. import { chromium } from 'playwright';
  3. import { loadDevLogin } from './dev-login.mjs';
  4. const login = loadDevLogin();
  5. const b = await chromium.launch({ headless: true, channel: 'chromium' });
  6. const ctx = await b.newContext({ viewport: { width: 1440, height: 900 } });
  7. const p = await ctx.newPage();
  8. await p.addInitScript((d) => {
  9. localStorage.setItem('fmode_session_token', d.token);
  10. localStorage.setItem('fmode_me', JSON.stringify(d.me));
  11. }, login.payload);
  12. await p.goto('http://localhost:4200/', { waitUntil: 'domcontentloaded' });
  13. await p.waitForTimeout(5000);
  14. console.log('初始(1440):', p.url().replace('http://localhost:4200',''), p.url().includes('/desktop/') ? '✅' : '❌');
  15. // 缩窄 → 应自动跳移动端
  16. await p.setViewportSize({ width: 600, height: 900 });
  17. await p.waitForTimeout(3000);
  18. const u1 = p.url();
  19. console.log('缩窄到 600:', u1.replace('http://localhost:4200',''), u1.includes('/mobile/') ? '✅ 自动切换' : '❌ 未切换');
  20. // 再变宽 → 应自动跳回桌面
  21. await p.setViewportSize({ width: 1400, height: 900 });
  22. await p.waitForTimeout(3000);
  23. const u2 = p.url();
  24. console.log('放宽到 1400:', u2.replace('http://localhost:4200',''), u2.includes('/desktop/') ? '✅ 自动切回' : '❌ 未切回');
  25. await b.close();