api-auto-updater-spec.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const assert = require('assert')
  2. const autoUpdater = require('electron').remote.autoUpdater
  3. const ipcRenderer = require('electron').ipcRenderer
  4. // Skip autoUpdater tests in MAS build.
  5. if (!process.mas) {
  6. describe('autoUpdater module', function () {
  7. describe('checkForUpdates', function () {
  8. it('emits an error on Windows when called the feed URL is not set', function (done) {
  9. if (process.platform !== 'win32') {
  10. return done()
  11. }
  12. ipcRenderer.once('auto-updater-error', function (event, message) {
  13. assert.equal(message, 'Update URL is not set')
  14. done()
  15. })
  16. autoUpdater.setFeedURL('')
  17. autoUpdater.checkForUpdates()
  18. })
  19. })
  20. describe('setFeedURL', function () {
  21. it('emits an error on macOS when the application is unsigned', function (done) {
  22. if (process.platform !== 'darwin') {
  23. return done()
  24. }
  25. ipcRenderer.once('auto-updater-error', function (event, message) {
  26. assert.equal(message, 'Could not get code signature for running application')
  27. done()
  28. })
  29. autoUpdater.setFeedURL('')
  30. })
  31. })
  32. describe('getFeedURL', function () {
  33. it('returns a falsey value by default', function () {
  34. assert.ok(!autoUpdater.getFeedURL())
  35. })
  36. it('correctly fetches the previously set FeedURL', function (done) {
  37. if (process.platform !== 'win32') {
  38. return done()
  39. }
  40. const updateURL = 'https://fake-update.electron.io'
  41. autoUpdater.setFeedURL(updateURL)
  42. assert.equal(autoUpdater.getFeedURL(), updateURL)
  43. done()
  44. })
  45. })
  46. describe('quitAndInstall', function () {
  47. it('emits an error on Windows when no update is available', function (done) {
  48. if (process.platform !== 'win32') {
  49. return done()
  50. }
  51. ipcRenderer.once('auto-updater-error', function (event, message) {
  52. assert.equal(message, 'No update available, can\'t quit and install')
  53. done()
  54. })
  55. autoUpdater.quitAndInstall()
  56. })
  57. })
  58. })
  59. }