diff --git a/src/io/deviceManager.js b/src/io/deviceManager.js index c603ccc9f..3895af341 100644 --- a/src/io/deviceManager.js +++ b/src/io/deviceManager.js @@ -161,7 +161,10 @@ class DeviceFinder { _getList () { this._deviceManager .list(this._extensionName, this._deviceType, this._deviceSpec) - .then(listResult => this._listResultHandler(listResult)); + .then( + listResult => this._listResultHandler(listResult), + () => this._listResultHandler(null) + ); } /** diff --git a/test/unit/io_deviceManager.js b/test/unit/io_deviceManager.js new file mode 100644 index 000000000..89127e31d --- /dev/null +++ b/test/unit/io_deviceManager.js @@ -0,0 +1,46 @@ +const test = require('tap').test; +const DeviceManager = require('../../src/io/deviceManager'); + +test('spec', t => { + const deviceManager = new DeviceManager(); + + t.type(DeviceManager, 'function'); + t.type(deviceManager, 'object'); + t.type(deviceManager.list, 'function'); + t.type(deviceManager.open, 'function'); + t.type(deviceManager.searchAndConnect, 'function'); + t.type(deviceManager.isConnected, 'boolean'); + t.end(); +}); + +test('default connected', t => { + const deviceManager = new DeviceManager(); + + t.strictEqual(deviceManager.isConnected, true); + t.end(); +}); + +test('cancel searchAndConnect', t => { + const deviceManager = new DeviceManager(); + + const finder = deviceManager.searchAndConnect('test extension', 'test device'); + + let resolved = false; + let rejected = false; + const testPromise = finder.promise + .then( + () => { + resolved = true; + }, + () => { + rejected = true; + } + ) + .then(() => { + t.strictEqual(resolved, false); + t.strictEqual(rejected, true); + }); + finder.cancel(); + + return testPromise; +});