From 5e21f7bad9efcc519d291a2b5910a5f4fd5e8ce7 Mon Sep 17 00:00:00 2001 From: Katrina Uychaco Date: Mon, 1 Feb 2016 16:11:10 -0800 Subject: [PATCH] Serialize package upon deactivation --- spec/package-manager-spec.coffee | 7 ++++--- src/package-manager.coffee | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spec/package-manager-spec.coffee b/spec/package-manager-spec.coffee index 8710927df..aa0b2d26f 100644 --- a/spec/package-manager-spec.coffee +++ b/spec/package-manager-spec.coffee @@ -445,11 +445,12 @@ describe "PackageManager", -> expect(console.warn).not.toHaveBeenCalled() it "passes the activate method the package's previously serialized state if it exists", -> - pack = atom.packages.loadPackage("package-with-serialization") + pack = null waitsForPromise -> - pack.activate() # require main module + atom.packages.activatePackage("package-with-serialization").then (p) -> pack = p runs -> - atom.packages.setPackageState("package-with-serialization", {someNumber: 77}) + expect(pack.mainModule.someNumber).not.toBe 77 + pack.mainModule.someNumber = 77 atom.packages.deactivatePackage("package-with-serialization") spyOn(pack.mainModule, 'activate').andCallThrough() waitsForPromise -> diff --git a/src/package-manager.coffee b/src/package-manager.coffee index 3a3a74711..636286640 100644 --- a/src/package-manager.coffee +++ b/src/package-manager.coffee @@ -487,6 +487,7 @@ class PackageManager # Deactivate the package with the given name deactivatePackage: (name) -> pack = @getLoadedPackage(name) + @serializePackage(pack) pack.deactivate() delete @activePackages[pack.name] delete @activatingPackages[pack.name]