Moved atom.loadPackage to a spec-only helper function

This commit is contained in:
Corey Johnson
2013-02-13 16:29:51 -08:00
parent 297a33cc8d
commit 958bc2bfab
22 changed files with 54 additions and 45 deletions

View File

@@ -62,6 +62,6 @@ describe "AtomPackage", ->
describe "when a package is activated", ->
it "loads config defaults based on the `configDefaults` key", ->
expect(config.get('package-with-module.numbers.one')).toBeUndefined()
atom.loadPackage("package-with-module")
window.loadPackage("package-with-module")
expect(config.get('package-with-module.numbers.one')).toBe 1
expect(config.get('package-with-module.numbers.two')).toBe 2

View File

@@ -8,7 +8,7 @@ describe "the `atom` global", ->
afterEach ->
rootView.deactivate()
describe ".loadPackage(name)", ->
describe "when a package is built and loaded", ->
[extension, stylesheetPath] = []
beforeEach ->
@@ -20,13 +20,13 @@ describe "the `atom` global", ->
it "requires and activates the package's main module if it exists", ->
spyOn(atom, 'activateAtomPackage').andCallThrough()
atom.loadPackage("package-with-module")
window.loadPackage("package-with-module")
expect(atom.activateAtomPackage).toHaveBeenCalled()
it "logs warning instead of throwing an exception if a package fails to load", ->
config.set("core.disabledPackages", [])
spyOn(console, "warn")
expect(-> atom.loadPackage("package-that-throws-an-exception")).not.toThrow()
expect(-> window.loadPackage("package-that-throws-an-exception")).not.toThrow()
expect(console.warn).toHaveBeenCalled()
describe "keymap loading", ->
@@ -40,7 +40,7 @@ describe "the `atom` global", ->
expect(keymap.bindingsForElement(element2)['ctrl-z']).toBeUndefined()
expect(keymap.bindingsForElement(element3)['ctrl-z']).toBeUndefined()
atom.loadPackage("package-with-module")
window.loadPackage("package-with-module")
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBe "test-1"
expect(keymap.bindingsForElement(element2)['ctrl-z']).toBe "test-2"
@@ -53,7 +53,7 @@ describe "the `atom` global", ->
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBeUndefined()
atom.loadPackage("package-with-keymaps-manifest")
window.loadPackage("package-with-keymaps-manifest")
expect(keymap.bindingsForElement(element1)['ctrl-z']).toBe 'keymap-1'
expect(keymap.bindingsForElement(element1)['ctrl-n']).toBe 'keymap-2'
@@ -62,7 +62,7 @@ describe "the `atom` global", ->
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")
window.loadPackage("package-with-module")
expect(stylesheetElementForId(stylesheetPath).length).toBe 1
describe ".loadPackages()", ->

View File

@@ -52,7 +52,7 @@ describe "RootView", ->
describe ".deactivate()", ->
it "deactivates all packages", ->
pack = atom.loadPackage("package-with-module")
pack = window.loadPackage("package-with-module")
atom.activateAtomPackage(pack)
spyOn(pack.packageMain, "deactivate").andCallThrough()
rootView.deactivate()

View File

@@ -17,20 +17,11 @@ fixturePackagesPath = require.resolve('fixtures/packages')
require.paths.unshift(fixturePackagesPath)
[bindingSetsToRestore, bindingSetsByFirstKeystrokeToRestore] = []
# Specs rely on TextMate bundles (but not atom packages)
window.loadTextMatePackages = ->
TextMatePackage = require 'text-mate-package'
config.packageDirPaths.unshift(fixturePackagesPath)
window.textMatePackages = []
for path in atom.getPackagePaths() when TextMatePackage.testName(path)
window.textMatePackages.push atom.loadPackage(fs.base(path))
window.loadTextMatePackages()
beforeEach ->
window.fixturesProject = new Project(require.resolve('fixtures'))
window.resetTimeouts()
atom.atomPackageStates = {}
atom.loadedPackages = []
# used to reset keymap after each spec
bindingSetsToRestore = _.clone(keymap.bindingSets)
@@ -77,6 +68,24 @@ $('html,body').css('overflow', 'auto')
jasmine.getEnv().addEqualityTester(_.isEqual) # Use underscore's definition of equality for toEqual assertions
jasmine.getEnv().defaultTimeoutInterval = 1000
window.loadPackage = (name, options) ->
Package = require 'package'
packagePath = _.find atom.getPackagePaths(), (packagePath) -> fs.base(packagePath) == name
if pack = Package.build(packagePath)
pack.load(options)
atom.loadedPackages.push(pack)
pack
# Specs rely on TextMate bundles (but not atom packages)
window.loadTextMatePackages = ->
TextMatePackage = require 'text-mate-package'
config.packageDirPaths.unshift(fixturePackagesPath)
window.textMatePackages = []
for path in atom.getPackagePaths() when TextMatePackage.testName(path)
window.textMatePackages.push window.loadPackage(fs.base(path))
window.loadTextMatePackages()
ensureNoPathSubscriptions = ->
watchedPaths = $native.getWatchedPaths()
$native.unwatchAllPaths()

View File

@@ -16,7 +16,7 @@ describe "Autocomplete", ->
describe "@activate()", ->
it "activates autocomplete on all existing and future editors (but not on autocomplete's own mini editor)", ->
spyOn(AutocompleteView.prototype, 'initialize').andCallThrough()
autocompletePackage = atom.loadPackage("autocomplete")
autocompletePackage = window.loadPackage("autocomplete")
expect(AutocompleteView.prototype.initialize).not.toHaveBeenCalled()
leftEditor = rootView.getActiveEditor()
@@ -43,7 +43,7 @@ describe "AutocompleteView", ->
beforeEach ->
new RootView
editor = new Editor(editSession: fixturesProject.buildEditSessionForPath('sample.js'))
atom.loadPackage('autocomplete')
window.loadPackage('autocomplete')
autocomplete = new AutocompleteView(editor)
miniEditor = autocomplete.miniEditor

View File

@@ -5,7 +5,7 @@ describe "Autoflow package", ->
beforeEach ->
rootView = new RootView
atom.loadPackage 'autoflow'
window.loadPackage 'autoflow'
editor = rootView.getActiveEditor()
config.set('editor.preferredLineLength', 30)

View File

@@ -5,7 +5,7 @@ describe "bracket matching", ->
beforeEach ->
rootView = new RootView(require.resolve('fixtures/sample.js'))
atom.loadPackage('bracket-matcher')
window.loadPackage('bracket-matcher')
rootView.attachToDom()
editor = rootView.getActiveEditor()
editSession = editor.activeEditSession

View File

@@ -6,7 +6,7 @@ describe "CommandLogger", ->
beforeEach ->
new RootView(require.resolve('fixtures/sample.js'))
commandLogger = atom.loadPackage('command-logger').packageMain
commandLogger = window.loadPackage('command-logger').packageMain
commandLogger.eventLog = {}
editor = rootView.getActiveEditor()

View File

@@ -8,7 +8,7 @@ describe "CommandPalette", ->
beforeEach ->
rootView = new RootView(require.resolve('fixtures/sample.js'))
atom.loadPackage("command-palette")
window.loadPackage("command-palette")
rootView.attachToDom().focus()
rootView.trigger 'command-palette:toggle'
palette = rootView.find('.command-palette').view()

View File

@@ -12,7 +12,7 @@ describe "CommandPanel", ->
project = rootView.project
editor = rootView.getActiveEditor()
buffer = editor.activeEditSession.buffer
commandPanelMain = atom.loadPackage('command-panel', activateImmediately: true).packageMain
commandPanelMain = window.loadPackage('command-panel', activateImmediately: true).packageMain
commandPanel = commandPanelMain.commandPanelView
commandPanel.history = []
commandPanel.historyIndex = 0
@@ -35,7 +35,7 @@ describe "CommandPanel", ->
rootViewState = rootView.serialize()
rootView.deactivate()
RootView.deserialize(rootViewState).attachToDom()
atom.loadPackage('command-panel')
window.loadPackage('command-panel')
expect(rootView.find('.command-panel')).not.toExist()
rootView.trigger 'command-panel:toggle'
@@ -61,7 +61,7 @@ describe "CommandPanel", ->
rootViewState = rootView.serialize()
rootView.deactivate()
RootView.deserialize(rootViewState).attachToDom()
atom.loadPackage('command-panel')
window.loadPackage('command-panel')
rootView.trigger 'command-panel:toggle'
commandPanel = rootView.find('.command-panel').view()

View File

@@ -23,7 +23,7 @@ describe "EditorStats", ->
mins = if mins == 60 then '01' else mins + 1
time = "#{hours}:#{mins}"
editorStats = atom.loadPackage('editor-stats').packageMain.stats
editorStats = window.loadPackage('editor-stats').packageMain.stats
afterEach ->
rootView.deactivate()

View File

@@ -12,7 +12,7 @@ describe 'FuzzyFinder', ->
beforeEach ->
new RootView(require.resolve('fixtures/sample.js'))
rootView.enableKeymap()
finderView = atom.loadPackage("fuzzy-finder").packageMain.createView()
finderView = window.loadPackage("fuzzy-finder").packageMain.createView()
afterEach ->
rootView.deactivate()

View File

@@ -6,7 +6,7 @@ describe "Gists package", ->
beforeEach ->
rootView = new RootView(fixturesProject.resolve('sample.js'))
atom.loadPackage('gists')
window.loadPackage('gists')
editor = rootView.getActiveEditor()
spyOn($, 'ajax')

View File

@@ -5,7 +5,7 @@ MarkdownPreview = require 'markdown-preview/lib/markdown-preview-view'
describe "MarkdownPreview", ->
beforeEach ->
rootView = new RootView(require.resolve('fixtures/markdown'))
atom.loadPackage("markdown-preview")
window.loadPackage("markdown-preview")
spyOn(MarkdownPreview.prototype, 'loadHtml')
afterEach ->

View File

@@ -6,7 +6,7 @@ describe 'Package Generator', ->
beforeEach ->
new RootView(require.resolve('fixtures/sample.js'))
atom.loadPackage("package-generator")
window.loadPackage("package-generator")
afterEach ->
rootView.deactivate()

View File

@@ -10,7 +10,7 @@ fdescribe "##PackageName##View", ->
beforeEach ->
new RootView()
##packageName## = atom.loadPackage('##packageName##', activateImmediately: true)
##packageName## = window.loadPackage('##packageName##', activateImmediately: true)
afterEach ->
rootView.deactivate()

View File

@@ -13,12 +13,12 @@ describe "Snippets extension", ->
rootView = new RootView(require.resolve('fixtures/sample.js'))
spyOn(LoadSnippetsTask.prototype, 'start')
packageWithSnippets = atom.loadPackage("package-with-snippets")
packageWithSnippets = window.loadPackage("package-with-snippets")
spyOn(atom, "getLoadedPackages").andCallFake ->
window.textMatePackages.concat([packageWithSnippets])
atom.loadPackage("snippets")
window.loadPackage("snippets")
editor = rootView.getActiveEditor()
editSession = rootView.getActiveEditSession()

View File

@@ -9,7 +9,7 @@ describe "StripTrailingWhitespace", ->
fs.write(path, "")
rootView = new RootView(path)
atom.loadPackage('strip-trailing-whitespace')
window.loadPackage('strip-trailing-whitespace')
rootView.focus()
editor = rootView.getActiveEditor()

View File

@@ -8,7 +8,7 @@ describe "SymbolsView", ->
beforeEach ->
rootView = new RootView(require.resolve('fixtures'))
atom.loadPackage("symbols-view")
window.loadPackage("symbols-view")
rootView.attachToDom()
setArraySpy = spyOn(SymbolsView.prototype, 'setArray').andCallThrough()

View File

@@ -10,7 +10,7 @@ describe "TabView", ->
new RootView(require.resolve('fixtures/sample.js'))
rootView.open('sample.txt')
rootView.simulateDomAttachment()
atom.loadPackage("tabs")
window.loadPackage("tabs")
editor = rootView.getActiveEditor()
tabs = rootView.find('.tabs').view()

View File

@@ -12,7 +12,7 @@ describe "TreeView", ->
new RootView(require.resolve('fixtures/tree-view'))
project = rootView.project
atom.loadPackage("tree-view")
window.loadPackage("tree-view")
rootView.trigger 'tree-view:toggle'
treeView = rootView.find(".tree-view").view()
treeView.root = treeView.find('ol > li:first').view()
@@ -50,7 +50,7 @@ describe "TreeView", ->
beforeEach ->
rootView.deactivate()
new RootView()
treeView = atom.loadPackage("tree-view").packageMain.createView()
treeView = window.loadPackage("tree-view").packageMain.createView()
it "does not attach to the root view or create a root node when initialized", ->
expect(treeView.hasParent()).toBeFalsy()
@@ -75,7 +75,7 @@ describe "TreeView", ->
it "does not attach to the root view but does create a root node when initialized", ->
rootView.deactivate()
new RootView(require.resolve('fixtures/tree-view/tree-view.js'))
treeView = atom.loadPackage("tree-view").packageMain.createView()
treeView = window.loadPackage("tree-view").packageMain.createView()
expect(treeView.hasParent()).toBeFalsy()
expect(treeView.root).toExist()
@@ -87,7 +87,7 @@ describe "TreeView", ->
rootViewState = rootView.serialize()
rootView.deactivate()
RootView.deserialize(rootViewState)
atom.loadPackage("tree-view")
window.loadPackage("tree-view")
treeView = rootView.find(".tree-view").view()
expect(treeView).toExist()
@@ -104,7 +104,7 @@ describe "TreeView", ->
RootView.deserialize(rootViewState)
rootView.attachToDom()
atom.loadPackage("tree-view")
window.loadPackage("tree-view")
treeView = rootView.find(".tree-view").view()
expect(treeView.find(".tree-view")).toMatchSelector ':focus'
@@ -599,7 +599,7 @@ describe "TreeView", ->
new RootView(rootDirPath)
project = rootView.project
atom.loadPackage('tree-view')
window.loadPackage('tree-view')
rootView.trigger 'tree-view:toggle'
treeView = rootView.find(".tree-view").view()
dirView = treeView.root.entries.find('.directory:contains(test-dir)').view()

View File

@@ -5,7 +5,7 @@ describe "WrapGuide", ->
beforeEach ->
new RootView(require.resolve('fixtures/sample.js'))
atom.loadPackage('wrap-guide')
window.loadPackage('wrap-guide')
rootView.attachToDom()
editor = rootView.getActiveEditor()
wrapGuide = rootView.find('.wrap-guide').view()