Load deprecated packages when including deprecated APIs

This commit is contained in:
Kevin Sawicki
2015-06-03 09:47:13 -07:00
parent 551636d59e
commit df2bd62327
2 changed files with 17 additions and 7 deletions

View File

@@ -57,12 +57,22 @@ describe "PackageManager", ->
expect(console.warn.callCount).toBe(1)
expect(console.warn.argsForCall[0][0]).toContain("Could not resolve")
it "returns null if the package is deprecated", ->
expect(atom.packages.loadPackage(path.join(__dirname, 'fixtures', 'packages', 'wordcount'))).toBeNull()
expect(atom.packages.isDeprecatedPackage('wordcount', '2.0.9')).toBe true
expect(atom.packages.isDeprecatedPackage('wordcount', '2.1.0')).toBe true
expect(atom.packages.isDeprecatedPackage('wordcount', '2.1.1')).toBe false
expect(atom.packages.getDeprecatedPackageMetadata('wordcount').version).toBe '<=2.1.0'
describe "when the package is deprecated", ->
includeDeprecatedAPIs = null
beforeEach ->
{includeDeprecatedAPIs} = require('grim')
afterEach ->
require('grim').includeDeprecatedAPIs = includeDeprecatedAPIs
it "returns null", ->
require('grim').includeDeprecatedAPIs = false
expect(atom.packages.loadPackage(path.join(__dirname, 'fixtures', 'packages', 'wordcount'))).toBeNull()
expect(atom.packages.isDeprecatedPackage('wordcount', '2.0.9')).toBe true
expect(atom.packages.isDeprecatedPackage('wordcount', '2.1.0')).toBe true
expect(atom.packages.isDeprecatedPackage('wordcount', '2.1.1')).toBe false
expect(atom.packages.getDeprecatedPackageMetadata('wordcount').version).toBe '<=2.1.0'
it "invokes ::onDidLoadPackage listeners with the loaded package", ->
loadedPackage = null

View File

@@ -333,7 +333,7 @@ class PackageManager
@handleMetadataError(error, packagePath)
return null
unless @isBundledPackage(metadata.name)
unless @isBundledPackage(metadata.name) or Grim.includeDeprecatedAPIs
if @isDeprecatedPackage(metadata.name, metadata.version)
console.warn "Could not load #{metadata.name}@#{metadata.version} because it uses deprecated APIs that have been removed."
return null