25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import { DeviceDriver } from '../../drivers/types';
|
|
import { sleep, waitForSource } from './element.helper';
|
|
import { scrollToAndTap } from './device-settings.helper';
|
|
|
|
export async function navigateToFirmwarePage(driver: DeviceDriver): Promise<boolean> {
|
|
const tapped = await scrollToAndTap(driver, 'Firmware Update');
|
|
if (tapped) return true;
|
|
return await scrollToAndTap(driver, 'Firmware & Battery');
|
|
}
|
|
|
|
export async function checkFirmwareVersion(driver: DeviceDriver): Promise<string> {
|
|
const source = await driver.getSource();
|
|
if (driver.platform === 'android') {
|
|
const versionMatch = source.match(/text="(V[\d.]+)"/);
|
|
return versionMatch ? versionMatch[1] : 'unknown';
|
|
}
|
|
const versionMatch = source.match(/name="(V[\d.]+)"/);
|
|
return versionMatch ? versionMatch[1] : 'unknown';
|
|
}
|
|
|
|
export async function isFirmwareUpToDate(driver: DeviceDriver): Promise<boolean> {
|
|
const source = await driver.getSource();
|
|
return source.includes('Up to date') || source.includes('Latest') || !source.includes('Update');
|
|
}
|