28 lines
1.6 KiB
TypeScript
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(' '));
|
|
});
|
|
});
|