diff --git a/dot-nylas/config.cson b/dot-nylas/config.cson
index 03a2ca6c7..d3f683b7e 100644
--- a/dot-nylas/config.cson
+++ b/dot-nylas/config.cson
@@ -7,3 +7,4 @@
"calendar-bar",
"salesforce"
]
+ 'updateLevel': 'patch'
diff --git a/internal_packages/attachments/stylesheets/attachments.less b/internal_packages/attachments/stylesheets/attachments.less
index 908154634..69854edc0 100644
--- a/internal_packages/attachments/stylesheets/attachments.less
+++ b/internal_packages/attachments/stylesheets/attachments.less
@@ -100,7 +100,7 @@
.attachment-upload-progress {
position: absolute;
left: 0;
- bottom: 0px;
+ bottom: 0;
height: 2px;
width: 0; // Changed by React
z-index: 3;
@@ -110,7 +110,7 @@
.attachment-bar-bg {
position: absolute;
left: 0;
- bottom: 0px;
+ bottom: 0;
height: 2px;
width: 100%;
z-index: 2;
diff --git a/internal_packages/composer/spec/inbox-composer-view-spec.cjsx b/internal_packages/composer/spec/inbox-composer-view-spec.cjsx
index f020a9798..dd42ce08a 100644
--- a/internal_packages/composer/spec/inbox-composer-view-spec.cjsx
+++ b/internal_packages/composer/spec/inbox-composer-view-spec.cjsx
@@ -34,7 +34,7 @@ textFieldStub = (className) ->
render: ->
{@props.children}
focus: ->
-passThroughStub = (props={})->
+passThroughStub = (props={}) ->
React.createClass
render: -> {props.children}
diff --git a/package.json b/package.json
index ab8d441c6..5183e682d 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "nylas",
"productName": "Nylas",
- "version": "0.178.0",
+ "version": "0.1.0",
"description": "An email OS",
"main": "./src/browser/main.js",
"repository": {
diff --git a/spec-nylas/auto-update-manager-spec.coffee b/spec-nylas/auto-update-manager-spec.coffee
new file mode 100644
index 000000000..e5ad65642
--- /dev/null
+++ b/spec-nylas/auto-update-manager-spec.coffee
@@ -0,0 +1,41 @@
+AutoUpdateManager = require '../src/browser/auto-update-manager'
+
+describe "AutoUpdateManager", ->
+ c1 = get: ->
+ c2 = get: -> "major"
+ c3 = get: -> "minor"
+ c4 = get: -> "patch"
+ c5 = get: -> "commit"
+ c6 = get: -> "foo"
+
+ base = "https://edgehill.nylas.com/update-check?version="
+
+ beforeEach ->
+ @feedUrl = (version, config) ->
+ m = new AutoUpdateManager(version, config)
+ spyOn(m, "setupAutoUpdater")
+ return m.feedUrl
+
+ describe "with attached commit version", ->
+ beforeEach ->
+ @v = "3.222.1-abc"
+
+ it "correctly sets the feedURL", ->
+ expect(@feedUrl(@v, c1)).toBe "#{base}3.222.1-abc&level=patch"
+ expect(@feedUrl(@v, c2)).toBe "#{base}3.222.1-abc&level=major"
+ expect(@feedUrl(@v, c3)).toBe "#{base}3.222.1-abc&level=minor"
+ expect(@feedUrl(@v, c4)).toBe "#{base}3.222.1-abc&level=patch"
+ expect(@feedUrl(@v, c5)).toBe "#{base}3.222.1-abc&level=commit"
+ expect(@feedUrl(@v, c6)).toBe "#{base}3.222.1-abc&level=patch"
+
+ describe "with no attached commit", ->
+ beforeEach ->
+ @v = "3.222.1"
+
+ it "correctly sets the feedURL", ->
+ expect(@feedUrl(@v, c1)).toBe "#{base}3.222.1&level=patch"
+ expect(@feedUrl(@v, c2)).toBe "#{base}3.222.1&level=major"
+ expect(@feedUrl(@v, c3)).toBe "#{base}3.222.1&level=minor"
+ expect(@feedUrl(@v, c4)).toBe "#{base}3.222.1&level=patch"
+ expect(@feedUrl(@v, c5)).toBe "#{base}3.222.1&level=commit"
+ expect(@feedUrl(@v, c6)).toBe "#{base}3.222.1&level=patch"
diff --git a/src/browser/application.coffee b/src/browser/application.coffee
index 91cf22584..c840076b2 100644
--- a/src/browser/application.coffee
+++ b/src/browser/application.coffee
@@ -77,7 +77,7 @@ class Application
@databases = {}
@windowManager = new WindowManager({@resourcePath, @config, @devMode, @safeMode})
- @autoUpdateManager = new AutoUpdateManager(@version)
+ @autoUpdateManager = new AutoUpdateManager(@version, @config)
@applicationMenu = new ApplicationMenu(@version)
@nylasProtocolHandler = new NylasProtocolHandler(@resourcePath, @safeMode)
diff --git a/src/browser/auto-update-manager.coffee b/src/browser/auto-update-manager.coffee
index faba96527..df07c6774 100644
--- a/src/browser/auto-update-manager.coffee
+++ b/src/browser/auto-update-manager.coffee
@@ -16,17 +16,23 @@ module.exports =
class AutoUpdateManager
_.extend @prototype, EventEmitter.prototype
- constructor: (@version) ->
+ constructor: (@version, @config) ->
@state = IdleState
if process.platform is 'win32'
# Squirrel for Windows can't handle query params
# https://github.com/Squirrel/Squirrel.Windows/issues/132
@feedUrl = 'https://edgehill.nylas.com/update-check'
else
- @feedUrl = "https://edgehill.nylas.com/update-check?version=#{@version}"
+ upgradeLevel = @getUpgradeLevel()
+ @feedUrl = "https://edgehill.nylas.com/update-check?version=#{@version}&level=#{upgradeLevel}"
process.nextTick => @setupAutoUpdater()
+ getUpgradeLevel: ->
+ lvl = @config.get("updateLevel") ? "patch"
+ if lvl not in ["major", "minor", "patch", "commit"] then lvl = "patch"
+ return lvl
+
setupAutoUpdater: ->
if process.platform is 'win32'
autoUpdater = require './auto-updater-win32'