From 111529ee7192e9417958bd217c24f216e4b9f274 Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 22 Jan 2016 12:41:43 -0400 Subject: [PATCH 1/2] Fix sporadic Cannot read property 'then' of undefined This error happened when trying to burn an image when there is already a burn in progress. Fixes: https://github.com/resin-io/resin-etcher/issues/96 --- lib/browser/modules/image-writer.js | 4 +--- tests/browser/modules/image-writer.spec.js | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lib/browser/modules/image-writer.js b/lib/browser/modules/image-writer.js index 21ae82e7..28dc6e34 100644 --- a/lib/browser/modules/image-writer.js +++ b/lib/browser/modules/image-writer.js @@ -114,10 +114,8 @@ imageWriter.service('ImageWriterService', function($q, $timeout) { * }); */ this.burn = function(image, drive, onProgress) { - - // Avoid writing more than once if (self.isBurning()) { - return; + return $q.reject(new Error('There is already a burn in progress')); } self.setBurning(true); diff --git a/tests/browser/modules/image-writer.spec.js b/tests/browser/modules/image-writer.spec.js index d75f1773..31546e73 100644 --- a/tests/browser/modules/image-writer.spec.js +++ b/tests/browser/modules/image-writer.spec.js @@ -84,6 +84,20 @@ describe('Browser: ImageWriter', function() { m.chai.expect(this.performWriteStub).to.have.been.calledOnce; }); + it('should reject the second burn attempt', function() { + ImageWriterService.burn('foo.img', '/dev/disk2'); + + let rejectError = null; + ImageWriterService.burn('foo.img', '/dev/disk2').catch(function(error) { + rejectError = error; + }); + + $rootScope.$apply(); + + m.chai.expect(rejectError).to.be.an.instanceof(Error); + m.chai.expect(rejectError.message).to.equal('There is already a burn in progress'); + }); + }); describe('given an unsuccesful write', function() { From 03e9b977cbd328921df329dd8eb7ab19bb8acd4f Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Fri, 22 Jan 2016 13:02:48 -0400 Subject: [PATCH 2/2] Prevent pointer events in hero-progress-button if active is true Fixes: https://github.com/resin-io/resin-etcher/issues/121 --- lib/components/hero-progress-button.html | 5 ++++- lib/index.html | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/components/hero-progress-button.html b/lib/components/hero-progress-button.html index 37ae8eec..89d78ea8 100644 --- a/lib/components/hero-progress-button.html +++ b/lib/components/hero-progress-button.html @@ -5,7 +5,7 @@