From 5ed9449f394aa90134e1e11ad11d49eeeafaa772 Mon Sep 17 00:00:00 2001 From: Mauricio Rodriguez Date: Tue, 29 Apr 2025 22:35:34 -0500 Subject: [PATCH] fix android devices --- package-lock.json | 4 ++-- src/utils/ADB.ts | 22 +++++++++++++++++----- src/utils/FileHelper.ts | 12 ++++++++---- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2b1cd52..2abc70e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "kraken-node", - "version": "1.0.23", + "version": "1.0.24", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "kraken-node", - "version": "1.0.23", + "version": "1.0.24", "license": "ISC", "dependencies": { "@cucumber/cucumber": "7.2.1", diff --git a/src/utils/ADB.ts b/src/utils/ADB.ts index 1dc436d..a8920e3 100644 --- a/src/utils/ADB.ts +++ b/src/utils/ADB.ts @@ -14,17 +14,29 @@ export class ADB { } connectedDevices(): AndroidDevice[] { - let devices: AndroidDevice[] = []; - const adbDevices: string = execSync('adb devices -l').toString(); + const devices: AndroidDevice[] = []; + + // 1) Intentamos ejecutar adb; si falla, devolvemos [] y no rompemos todo + let adbDevices: string; + try { + adbDevices = execSync('adb devices -l').toString(); + } catch (err) { + // adb no está instalado o no está en el PATH + return devices; + } + + // 2) Si adb funcionó, procesamos la salida normal adbDevices.split('\n').forEach((line: string) => { - const id: any = this.extractDeviceIdFromLine(line); + const id: any = this.extractDeviceIdFromLine(line); const model: any = this.extractDeviceModelFromLine(line); - if(!id || !model) { return; } - + if (!id || !model) { return; } devices.push(new AndroidDevice(id, model)); }); + return devices; } + + deviceScreenSize(deviceId: string): number[] { let adbScreenSize = execSync(`adb -s ${deviceId} shell wm size`).toString(); diff --git a/src/utils/FileHelper.ts b/src/utils/FileHelper.ts index 3f50e61..e54c7fa 100644 --- a/src/utils/FileHelper.ts +++ b/src/utils/FileHelper.ts @@ -69,11 +69,15 @@ export class FileHelper { } } - createFileIfDoesNotExist(path: string) { - if (!fs.existsSync(path)) { - fs.openSync(path, 'w'); + createFileIfDoesNotExist(filePath: string) { + // 1) Asegurarse de que la carpeta padre existe + const dir = path.dirname(filePath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); } - } + // 2) Luego crear o abrir el fichero en modo append + fs.openSync(filePath, 'a'); +} contentOfFile(path: string): any { const contents = fs.readFileSync(path, 'utf8');