diff --git a/lib/installed-package-view.coffee b/lib/installed-package-view.coffee index 58d25dee..8576ec02 100644 --- a/lib/installed-package-view.coffee +++ b/lib/installed-package-view.coffee @@ -53,12 +53,17 @@ class InstalledPackageView extends View @div outlet: 'sections' initialize: (@pack, @packageManager) -> + @activate() @populate() @handleButtonEvents() @updateFileButtons() @checkForUpdate() @subscribeToPackageManager() + activate: -> + # Package.activateConfig() is part of the Private package API and should not be used outside of core. + @pack.activateConfig() if not atom.packages.isPackageActive(@pack.name) + detached: -> @unsubscribe() diff --git a/spec/fixtures/package-with-config/main.coffee b/spec/fixtures/package-with-config/main.coffee new file mode 100644 index 00000000..d9c28f7e --- /dev/null +++ b/spec/fixtures/package-with-config/main.coffee @@ -0,0 +1,5 @@ +module.exports = + config: + setting: + type: 'string' + default: 'something' diff --git a/spec/fixtures/package-with-config/package.json b/spec/fixtures/package-with-config/package.json new file mode 100644 index 00000000..7cc5a07e --- /dev/null +++ b/spec/fixtures/package-with-config/package.json @@ -0,0 +1,6 @@ +{ + "name": "package-with-config", + "version": "1.0", + "repository": "https://github.com/example/package-with-config", + "main": "main" +} diff --git a/spec/installed-package-view-spec.coffee b/spec/installed-package-view-spec.coffee index 38c57e5c..93da4731 100644 --- a/spec/installed-package-view-spec.coffee +++ b/spec/installed-package-view-spec.coffee @@ -61,3 +61,17 @@ describe "InstalledPackageView", -> view = new InstalledPackageView(pack, new PackageManager()) keybindingsTable = view.find('.package-keymap-table tbody') expect(keybindingsTable.children().length).toBe 0 + + it 'should load the config for inactive packages', -> + atom.packages.loadPackage(path.join(__dirname, 'fixtures', 'package-with-config')) + + waitsFor -> + atom.packages.isPackageLoaded('package-with-config') is true + + runs -> + expect(atom.config.get('package-with-config.setting')).toBe undefined + + pack = atom.packages.getLoadedPackage('package-with-config') + view = new InstalledPackageView(pack, new PackageManager()) + + expect(atom.config.get('package-with-config.setting')).toBe 'something'