AI_UIAutomation/tests/_pm_continue.test.ts

28 lines
1.6 KiB
TypeScript

import { describe, it, beforeAll, afterAll } from 'vitest';
import { DeviceDriver } from '../drivers/types';
import { createDriver } from '../drivers/factory';
import { enterPairingMode, configureHubWifi, sleep } from '../utils/common';
import { getWifiCredentials } from '../config/wifi.config';
const texts = (s: string) => (s.match(/text="[^"]*"/g) || []).filter(x => !/text=""/.test(x)).join(' | ');
describe('continue plugmini', () => {
let driver: DeviceDriver;
beforeAll(async () => { driver = createDriver(); await driver.createSession(); });
afterAll(async () => { await driver.destroySession(); });
it('from guide', { timeout: 120000 }, async () => {
console.log('CURRENT::', texts(await driver.getSource()).slice(0,200));
// 引导页:按 ch1 长按 + Next 触发连接
await enterPairingMode('plug_mini').catch(e=>console.log('relay err', e.message));
await sleep(1500);
const n = await driver.findElementRaw('-android uiautomator', 'new UiSelector().text("Next")');
if (n) { await driver.tapElement(n); console.log('tapped Next'); }
// 等连接 + 看是否到 WiFi 配网页
for (let i=0;i<8;i++){ await sleep(3000); const s=await driver.getSource(); if(/Configure Wi-?Fi|Wi-?Fi password/i.test(s)){console.log('WIFI_PAGE@'+i+'::', texts(s)); break;} console.log('WAIT'+i+'::', texts(s).slice(0,150)); }
// 配网
await configureHubWifi(driver, getWifiCredentials());
await sleep(3000);
await driver.dismissPopupIfPresent();
await driver.goBackToHomepage(); await sleep(2000);
console.log('HOME_PLUG::', texts(await driver.getSource()).split('|').filter(t=>/Plug/i.test(t)).join(' '));
});
});