Set config defaults for a package from its module's configDefaults

This commit is contained in:
Nathan Sobo
2013-01-04 17:23:24 -07:00
parent d509093076
commit 0624ebaf5d
2 changed files with 10 additions and 1 deletions

View File

@@ -396,8 +396,9 @@ describe "RootView", ->
beforeEach ->
packageModule =
deactivate: ->
configDefaults: foo: { bar: 2, baz: 3 }
activate: jasmine.createSpy("activate")
deactivate: ->
serialize: -> "it worked"
describe ".activatePackage(name, packageModule)", ->
@@ -414,6 +415,13 @@ describe "RootView", ->
expect(packageModule.activate).toHaveBeenCalledWith(newRootView, "it worked")
newRootView.remove()
it "loads config defaults based on the `configDefaults` key", ->
expect(config.get('foo.bar')).toBeUndefined()
rootView.activatePackage('package', packageModule)
config.set("package.foo.bar", 1)
expect(config.get('package.foo.bar')).toBe 1
expect(config.get('package.foo.baz')).toBe 3
describe ".deactivatePackage(packageName)", ->
it "deactivates and removes the package module from the package module map", ->
rootView.activatePackage('package', packageModule)

View File

@@ -113,6 +113,7 @@ class RootView extends View
when 'Editor' then Editor.deserialize(viewState, this)
activatePackage: (name, packageModule) ->
config.setDefaults(name, packageModule.configDefaults) if packageModule.configDefaults?
@packageModules[name] = packageModule
packageModule.activate(this, @packageStates[name])