Cleanup activationHookSubscriptions when deactivating package

Released under CC0.
This commit is contained in:
Andres Suarez
2016-07-25 21:56:50 -07:00
parent 986689b0e4
commit d7378f0d6a
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()