mirror of
https://github.com/balena-io/etcher.git
synced 2025-07-25 04:06:42 +00:00
Make DriveScanner.start() return an EventEmitter instance
This commit is contained in:
parent
491a0ae9c9
commit
f218cc1b59
@ -117,6 +117,7 @@ app.controller('AppController', function($q, DriveScannerService, SelectionState
|
||||
|
||||
var angular = require('angular');
|
||||
var _ = require('lodash');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var remote = window.require('remote');
|
||||
|
||||
if (window.mocha) {
|
||||
@ -247,15 +248,32 @@ driveScanner.service('DriveScannerService', function($q, DriveScannerRefreshServ
|
||||
* @function
|
||||
* @public
|
||||
*
|
||||
* @description
|
||||
* This function returns an event emitter instance
|
||||
* that emits a `scan` event everything it scans
|
||||
* the drives successfully.
|
||||
*
|
||||
* @param {Number} ms - interval milliseconds
|
||||
* @returns {EventEmitter} event emitter instance
|
||||
*
|
||||
* @example
|
||||
* DriveScannerService.start(2000);
|
||||
* var emitter = DriveScannerService.start(2000);
|
||||
*
|
||||
* emitter.on('scan', function(drives) {
|
||||
* console.log(drives);
|
||||
* });
|
||||
*/
|
||||
this.start = function(ms) {
|
||||
var emitter = new EventEmitter();
|
||||
|
||||
DriveScannerRefreshService.every(function() {
|
||||
return self.scan().then(self.setDrives);
|
||||
return self.scan().then(function(drives) {
|
||||
emitter.emit('scan', drives);
|
||||
self.setDrives(drives);
|
||||
});
|
||||
}, ms);
|
||||
|
||||
return emitter;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
var angular = require('angular');
|
||||
var _ = require('lodash');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var remote = window.require('remote');
|
||||
|
||||
if (window.mocha) {
|
||||
@ -150,15 +151,32 @@ driveScanner.service('DriveScannerService', function($q, DriveScannerRefreshServ
|
||||
* @function
|
||||
* @public
|
||||
*
|
||||
* @description
|
||||
* This function returns an event emitter instance
|
||||
* that emits a `scan` event everything it scans
|
||||
* the drives successfully.
|
||||
*
|
||||
* @param {Number} ms - interval milliseconds
|
||||
* @returns {EventEmitter} event emitter instance
|
||||
*
|
||||
* @example
|
||||
* DriveScannerService.start(2000);
|
||||
* var emitter = DriveScannerService.start(2000);
|
||||
*
|
||||
* emitter.on('scan', function(drives) {
|
||||
* console.log(drives);
|
||||
* });
|
||||
*/
|
||||
this.start = function(ms) {
|
||||
var emitter = new EventEmitter();
|
||||
|
||||
DriveScannerRefreshService.every(function() {
|
||||
return self.scan().then(self.setDrives);
|
||||
return self.scan().then(function(drives) {
|
||||
emitter.emit('scan', drives);
|
||||
self.setDrives(drives);
|
||||
});
|
||||
}, ms);
|
||||
|
||||
return emitter;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -181,6 +181,21 @@ describe('Browser: DriveScanner', function() {
|
||||
DriveScannerService.stop();
|
||||
});
|
||||
|
||||
describe('.start()', function() {
|
||||
|
||||
it('should emit a `scan` event with the drives', function() {
|
||||
var emitter = DriveScannerService.start(2000);
|
||||
var scanSpy = m.sinon.spy();
|
||||
emitter.on('scan', scanSpy);
|
||||
$timeout.flush();
|
||||
$interval.flush(1000);
|
||||
m.chai.expect(scanSpy).to.have.been.calledOnce;
|
||||
m.chai.expect(scanSpy).to.have.been.calledWith(this.drives);
|
||||
DriveScannerService.stop();
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user