From ad4aee75199efbab8d028403d0459b74bf9d3816 Mon Sep 17 00:00:00 2001 From: Vladimir Kotikov Date: Tue, 22 Aug 2017 23:33:21 -0700 Subject: [PATCH] Return meaningful error when no devices available Summary: `react-native run-ios --device` should report 'No iOS devices connected.' in case when no devices attached. However due to logic bug when empty array is being treatened as a boolean value, cli reports odd message, saying `Could not find device with the name: "true".` Disconnect all iOS devices from developer machine and run `react-native run-ios --device` in any project - console message should state that there are no devices available. Closes https://github.com/facebook/react-native/pull/15603 Differential Revision: D5686891 Pulled By: shergin fbshipit-source-id: 289461b6f920691ad39e940ecca6d85cf2a3573b --- local-cli/runIOS/runIOS.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/local-cli/runIOS/runIOS.js b/local-cli/runIOS/runIOS.js index a56723166..901c33b35 100644 --- a/local-cli/runIOS/runIOS.js +++ b/local-cli/runIOS/runIOS.js @@ -47,10 +47,10 @@ function runIOS(argv, config, args) { ); if (args.device) { const selectedDevice = matchingDevice(devices, args.device); - if (selectedDevice){ + if (selectedDevice) { return runOnDevice(selectedDevice, scheme, xcodeProject, args.configuration, args.packager); } else { - if (devices){ + if (devices && devices.length > 0) { console.log('Could not find device with the name: "' + args.device + '".'); console.log('Choose one of the following:'); printFoundDevices(devices); @@ -67,10 +67,10 @@ function runIOS(argv, config, args) { function runOnDeviceByUdid(args, scheme, xcodeProject, devices) { const selectedDevice = matchingDeviceByUdid(devices, args.udid); - if (selectedDevice){ + if (selectedDevice) { return runOnDevice(selectedDevice, scheme, xcodeProject, args.configuration, args.packager); } else { - if (devices){ + if (devices && devices.length > 0) { console.log('Could not find device with the udid: "' + args.udid + '".'); console.log('Choose one of the following:'); printFoundDevices(devices); @@ -80,7 +80,7 @@ function runOnDeviceByUdid(args, scheme, xcodeProject, devices) { } } -function runOnSimulator(xcodeProject, args, scheme){ +function runOnSimulator(xcodeProject, args, scheme) { return new Promise((resolve) => { try { var simulators = JSON.parse( @@ -205,7 +205,7 @@ function formattedDeviceName(simulator) { return `${simulator.name} (${simulator.version})`; } -function printFoundDevices(devices){ +function printFoundDevices(devices) { for (let i = devices.length - 1; i >= 0; i--) { console.log(devices[i].name + ' Udid: ' + devices[i].udid); }