Browse Source

Merge pull request #6780 from electron/update-available-check

Mark update available until restart
Cheng Zhao 8 years ago
parent
commit
01f92a83ab
2 changed files with 19 additions and 9 deletions
  1. 5 9
      lib/browser/api/auto-updater/auto-updater-win.js
  2. 14 0
      spec/api-auto-updater-spec.js

+ 5 - 9
lib/browser/api/auto-updater/auto-updater-win.js

@@ -10,7 +10,7 @@ class AutoUpdater extends EventEmitter {
       return this.emitError('No update available, can\'t quit and install')
     }
     squirrelUpdate.processStart()
-    return app.quit()
+    app.quit()
   }
 
   getFeedURL () {
@@ -34,21 +34,17 @@ class AutoUpdater extends EventEmitter {
         return this.emitError(error)
       }
       if (update == null) {
-        this.updateAvailable = false
         return this.emit('update-not-available')
       }
       this.updateAvailable = true
       this.emit('update-available')
       squirrelUpdate.update(this.updateURL, (error) => {
-        var date, releaseNotes, version
         if (error != null) {
           return this.emitError(error)
         }
-        releaseNotes = update.releaseNotes
-        version = update.version
-
-        // Following information is not available on Windows, so fake them.
-        date = new Date()
+        const {releaseNotes, version} = update
+        // Date is not available on Windows, so fake it.
+        const date = new Date()
         this.emit('update-downloaded', {}, releaseNotes, version, date, this.updateURL, () => {
           this.quitAndInstall()
         })
@@ -59,7 +55,7 @@ class AutoUpdater extends EventEmitter {
   // Private: Emit both error object and message, this is to keep compatibility
   // with Old APIs.
   emitError (message) {
-    return this.emit('error', new Error(message), message)
+    this.emit('error', new Error(message), message)
   }
 }
 

+ 14 - 0
spec/api-auto-updater-spec.js

@@ -50,5 +50,19 @@ if (!process.mas) {
         done()
       })
     })
+
+    describe('quitAndInstall', function () {
+      it('emits an error on Windows when no update is available', function (done) {
+        if (process.platform !== 'win32') {
+          return done()
+        }
+
+        ipcRenderer.once('auto-updater-error', function (event, message) {
+          assert.equal(message, 'No update available, can\'t quit and install')
+          done()
+        })
+        autoUpdater.quitAndInstall()
+      })
+    })
   })
 }