Mailspring/internal_packages/onboarding/spec/nylas-api-environment-store-spec.coffee
2015-10-02 15:31:05 -07:00

36 lines
1.3 KiB
CoffeeScript

Actions = require '../lib/onboarding-actions'
NylasApiEnvironmentStore = require '../lib/nylas-api-environment-store'
storeConstructor = NylasApiEnvironmentStore.constructor
describe "NylasApiEnvironmentStore", ->
beforeEach ->
spyOn(atom.config, "set")
it "doesn't set if it alreayd exists", ->
spyOn(atom.config, "get").andReturn "staging"
store = new storeConstructor()
expect(atom.config.set).not.toHaveBeenCalled()
it "initializes with the correct default in dev mode", ->
spyOn(atom, "inDevMode").andReturn true
spyOn(atom.config, "get").andReturn undefined
store = new storeConstructor()
expect(atom.config.set).toHaveBeenCalledWith("env", "production")
it "initializes with the correct default in production", ->
spyOn(atom, "inDevMode").andReturn false
spyOn(atom.config, "get").andReturn undefined
store = new storeConstructor()
expect(atom.config.set).toHaveBeenCalledWith("env", "production")
describe "when setting the environment", ->
it "sets from the desired action", ->
Actions.changeAPIEnvironment("staging")
expect(atom.config.set).toHaveBeenCalledWith("env", "staging")
it "throws if the env is invalid", ->
expect( -> Actions.changeAPIEnvironment("bad")).toThrow()
it "throws if the env is blank", ->
expect( -> Actions.changeAPIEnvironment()).toThrow()