mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Also, add a spec to cover the loading of keymaps in `atom-spec` and reset the `keymap`'s internal data after each spec gets run to prevent test pollution with keymaps.
53 lines
2.2 KiB
CoffeeScript
53 lines
2.2 KiB
CoffeeScript
RootView = require 'root-view'
|
|
{$$} = require 'space-pen'
|
|
|
|
describe "the `atom` global", ->
|
|
describe ".loadPackage(name)", ->
|
|
[extension, stylesheetPath] = []
|
|
|
|
beforeEach ->
|
|
rootView = new RootView
|
|
extension = require "package-with-module"
|
|
stylesheetPath = require.resolve("fixtures/packages/package-with-module/stylesheets/styles.css")
|
|
|
|
afterEach ->
|
|
removeStylesheet(stylesheetPath)
|
|
|
|
it "requires and activates the package's main module if it exists", ->
|
|
spyOn(rootView, 'activatePackage').andCallThrough()
|
|
atom.loadPackage("package-with-module")
|
|
expect(rootView.activatePackage).toHaveBeenCalledWith(extension)
|
|
|
|
describe "keymap loading", ->
|
|
describe "when package.json does not contain a 'keymaps' manifest", ->
|
|
it "loads all keymaps in the directory", ->
|
|
element1 = $$ -> @div class: 'test-1'
|
|
element2 = $$ -> @div class: 'test-2'
|
|
|
|
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBeUndefined()
|
|
expect(keymap.bindingsForElement(element2)['ctrl-z']).toBeUndefined()
|
|
|
|
atom.loadPackage("package-with-module")
|
|
|
|
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBe "test-1"
|
|
expect(keymap.bindingsForElement(element2)['ctrl-z']).toBe "test-2"
|
|
|
|
describe "when package.json contains a 'keymaps' manifest", ->
|
|
it "loads only the keymaps specified by the manifest, in the specified order", ->
|
|
element1 = $$ -> @div class: 'test-1'
|
|
element3 = $$ -> @div class: 'test-3'
|
|
|
|
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBeUndefined()
|
|
|
|
atom.loadPackage("package-with-keymaps-manifest")
|
|
|
|
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBe 'keymap-1'
|
|
expect(keymap.bindingsForElement(element1)['ctrl-n']).toBe 'keymap-2'
|
|
expect(keymap.bindingsForElement(element3)['ctrl-y']).toBeUndefined()
|
|
|
|
it "loads stylesheets associated with the package", ->
|
|
stylesheetPath = require.resolve("fixtures/packages/package-with-module/stylesheets/styles.css")
|
|
expect(stylesheetElementForId(stylesheetPath).length).toBe 0
|
|
atom.loadPackage("package-with-module")
|
|
expect(stylesheetElementForId(stylesheetPath).length).toBe 1
|