mirror of
https://github.com/atom/atom.git
synced 2026-01-21 04:48:12 -05:00
Add spec for invalid settings notification
This commit is contained in:
4
spec/fixtures/packages/package-with-invalid-settings/package.json
vendored
Normal file
4
spec/fixtures/packages/package-with-invalid-settings/package.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"name": "package-with-invalid-settings",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
1
spec/fixtures/packages/package-with-invalid-settings/settings/settings.json
vendored
Normal file
1
spec/fixtures/packages/package-with-invalid-settings/settings/settings.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
><
|
||||
@@ -239,6 +239,19 @@ describe "PackageManager", ->
|
||||
expect(addErrorHandler.callCount).toBe 1
|
||||
expect(addErrorHandler.argsForCall[0][0].message).toContain("Failed to load a package-with-invalid-grammar package grammar")
|
||||
|
||||
it "adds a notification when the settings are invalid", ->
|
||||
addErrorHandler = jasmine.createSpy()
|
||||
atom.notifications.onDidAddNotification(addErrorHandler)
|
||||
|
||||
expect(-> atom.packages.activatePackage('package-with-invalid-settings')).not.toThrow()
|
||||
|
||||
waitsFor ->
|
||||
addErrorHandler.callCount > 0
|
||||
|
||||
runs ->
|
||||
expect(addErrorHandler.callCount).toBe 1
|
||||
expect(addErrorHandler.argsForCall[0][0].message).toContain("Failed to load the package-with-invalid-settings package settings")
|
||||
|
||||
describe "when the package has no main module", ->
|
||||
it "does not throw an exception", ->
|
||||
spyOn(console, "error")
|
||||
|
||||
@@ -324,7 +324,7 @@ class Package
|
||||
ScopedProperties.load settingsPath, (error, settings) =>
|
||||
if error?
|
||||
detail = "#{error.message} in #{settingsPath}"
|
||||
stack += "#{error.stack}\n at #{settingsPath}:1:1"
|
||||
stack = "#{error.stack}\n at #{settingsPath}:1:1"
|
||||
atom.notifications.addFatalError("Failed to load the #{@name} package settings", {stack, detail, dismissable: true})
|
||||
else
|
||||
@settings.push(settings)
|
||||
|
||||
Reference in New Issue
Block a user