diff --git a/packages/sdk-android/src/__tests__/deviceManager.test.ts b/packages/sdk-android/src/__tests__/deviceManager.test.ts index 885006117..2ae119386 100644 --- a/packages/sdk-android/src/__tests__/deviceManager.test.ts +++ b/packages/sdk-android/src/__tests__/deviceManager.test.ts @@ -147,7 +147,7 @@ describe('connectToWifiDevice', () => { //THEN expect(execCLI).toHaveBeenCalledTimes(1); expect(result).toBeFalsy(); - }); + }, 15000); it('pass when connect to correct IP address', async () => { //GIVEN jest.mocked(execCLI).mockResolvedValue('connected to 1.1.1.1:5555'); diff --git a/packages/sdk-android/src/deviceManager.ts b/packages/sdk-android/src/deviceManager.ts index ff6ffa2c0..9c58e4f81 100644 --- a/packages/sdk-android/src/deviceManager.ts +++ b/packages/sdk-android/src/deviceManager.ts @@ -455,18 +455,32 @@ export const connectToWifiDevice = async (target: string) => { const deviceResponse = await execCLI(CLI_ANDROID_ADB, connect_str); - if (deviceResponse.includes('connected')) return true; + if (deviceResponse.includes('connected to')) return true; - if (deviceResponse.includes('Connection refused')) { + try { + await new Promise((resolve, reject) => { + child_process.execFile( + 'ping', + isSystemWin ? [target.split(':')[0]] : ['-c', '1', target.split(':')[0]], + (error, stdout) => { + if (error) { + reject(error); + } else { + resolve(stdout); + } + } + ); + }); + logWarning( + `You'll need to pair your device before installing app. \nFor more information: https://developer.android.com/studio/run/device` + ); + return await _pairDevices(target); + } catch (error) { logError(`Failed to ${connect_str}. Connection refused. Make sure to that ip and port are correct.`, { skipAnalytics: true, }); return false; } - logWarning( - `You'll need to pair your device before installing app. \nFor more information: https://developer.android.com/studio/run/device` - ); - return await _pairDevices(target); }; const _pairDevices = async (target: string) => { diff --git a/packages/sdk-apple/src/__tests__/deviceManager.test.ts b/packages/sdk-apple/src/__tests__/deviceManager.test.ts index 303b5e540..5920b1233 100644 --- a/packages/sdk-apple/src/__tests__/deviceManager.test.ts +++ b/packages/sdk-apple/src/__tests__/deviceManager.test.ts @@ -62,7 +62,6 @@ describe('getAppleDevices', () => { jest.mocked(listIOSDevices).mockResolvedValueOnce(devices); // WHEN const result = await getAppleDevices(true, false); - console.log(result); // THEN expect(result).toHaveLength(2); expect(result[0].name).toBe('iPhone 15 Pro');