Merge pull request #12237 from zertosh/cleanup-activation-hook-subscrtiptions

Cleanup activationHookSubscriptions when deactivating package
This commit is contained in:
Max Brunsfeld
2016-08-09 17:08:49 -07:00
committed by GitHub
2 changed files with 22 additions and 0 deletions

View File

@@ -431,6 +431,27 @@ describe "PackageManager", ->
runs ->
expect(Package.prototype.requireMainModule.callCount).toBe 1
it "does not double register activation hooks when deactivating and reactivating", ->
expect(mainModule.activate.callCount).toBe 0
atom.packages.triggerActivationHook('language-fictitious:grammar-used')
atom.packages.triggerDeferredActivationHooks()
waitsForPromise ->
promise
runs ->
expect(mainModule.activate.callCount).toBe 1
atom.packages.deactivatePackage('package-with-activation-hooks')
promise = atom.packages.activatePackage('package-with-activation-hooks')
atom.packages.triggerActivationHook('language-fictitious:grammar-used')
atom.packages.triggerDeferredActivationHooks()
waitsForPromise ->
promise
runs ->
expect(mainModule.activate.callCount).toBe 2
it "activates the package immediately when activationHooks is empty", ->
mainModule = require './fixtures/packages/package-with-empty-activation-hooks/index'
spyOn(mainModule, 'activate').andCallThrough()

View File

@@ -388,6 +388,7 @@ class Package
@activationPromise = null
@resolveActivationPromise = null
@activationCommandSubscriptions?.dispose()
@activationHookSubscriptions?.dispose()
@configSchemaRegisteredOnActivate = false
@deactivateResources()
@deactivateKeymaps()