Fix broken specs

This commit is contained in:
probablycorey 2013-06-27 09:53:42 -07:00
parent 8bf877e400
commit 3f83d42afc
3 changed files with 50 additions and 50 deletions

View File

@ -2,7 +2,6 @@ $ = require 'jquery'
_ = require 'underscore'
{$$} = require 'space-pen'
ConfigPanel = require './config-panel'
AvailablePackagesConfigPanel = require './available-packages-config-panel'
EventEmitter = require 'event-emitter'
Editor = require 'editor'
PackageView = require './package-view'
@ -28,67 +27,65 @@ class PackagePanel extends ConfigPanel
@span class: 'badge pull-right', outlet: 'availableCount'
@subview 'packageFilter', new Editor(mini: true, attributes: {id: 'package-filter'})
@div outlet: 'installedViews'
@div outlet: 'availableViews'
@div outlet: 'installedPackages'
@div outlet: 'availablePackages'
initialize: ->
@packageEventEmitter = new PackageEventEmitter()
@availableViews.hide()
@availablePackages.hide()
@loadInstalledViews()
@loadAvailableViews()
@installedLink.on 'click', =>
@availableLink.removeClass('active')
@availableViews.hide()
@availablePackages.hide()
@installedLink.addClass('active')
@installedViews.show()
@installedPackages.show()
@availableLink.on 'click', =>
@installedLink.removeClass('active')
@installedViews.hide()
@installedPackages.hide()
@availableLink.addClass('active')
@availableViews.show()
@availablePackages.show()
@packageEventEmitter.on 'package-installed', (error, pack) =>
@addPackage(pack) unless error?
@updateInstalledCount()
@addInstalledPackage(pack) unless error?
@packageEventEmitter.on 'package-uninstalled', (error, pack) =>
@removePackage(pack) unless error?
@updateInstalledCount()
@removeInstalledPackage(pack) unless error?
@packageFilter.getBuffer().on 'contents-modified', =>
@filterPackages(@packageFilter.getText())
loadInstalledViews: ->
@installedViews.empty()
@installedViews.append @createLoadingView('Loading installed packages\u2026')
@installedPackages.empty()
@installedPackages.append @createLoadingView('Loading installed packages\u2026')
packages = _.sortBy(atom.getAvailablePackageMetadata(), 'name')
packageManager.renderMarkdownInMetadata packages, =>
@installedViews.empty()
@installedPackages.empty()
for pack in packages
view = new PackageView(pack, @packageEventEmitter)
@installedViews.append(view)
@installedPackages.append(view)
@updateInstalledCount()
loadAvailableViews: ->
@availableViews.empty()
@availableViews.append @createLoadingView('Loading installed packages\u2026')
@availablePackages.empty()
@availablePackages.append @createLoadingView('Loading installed packages\u2026')
packageManager.getAvailable (error, @packages=[]) =>
@availableViews.empty()
@availablePackages.empty()
if error?
errorView = @createErrorView('Error fetching available packages.')
errorView.on 'click', => @loadAvailableViews()
@availableViews.append errorView
@availablePackages.append errorView
console.error(error.stack ? error)
else
for pack in @packages
view = new PackageView(pack, @packageEventEmitter)
@availableViews.append(view)
@availablePackages.append(view)
@updateAvailableCount()
@ -103,28 +100,31 @@ class PackagePanel extends ConfigPanel
@button class: 'btn btn-mini btn-retry', 'Retry'
updateInstalledCount: ->
@installedCount.text(@installedViews.children().length)
@installedCount.text(@installedPackages.children().length)
updateAvailableCount: ->
@availableCount.text(@availableViews.children().length)
@availableCount.text(@availablePackages.children().length)
removePackage: ({name}) ->
@installedViews.children("[name=#{name}]").remove()
removeInstalledPackage: ({name}) ->
@installedPackages.children("[name=#{name}]").remove()
@updateInstalledCount()
addPackage: (pack) ->
addInstalledPackage: (pack) ->
packageNames = [pack.name]
@installedViews.children().each (index, el) -> packageNames.push(el.getAttribute('name'))
@installedPackages.children().each (index, el) -> packageNames.push(el.getAttribute('name'))
packageNames.sort()
insertAfterIndex = packageNames.indexOf(pack.name) - 1
view = new PackageView(pack, @packageEventEmitter)
if insertAfterIndex < 0
@installedViews.prepend(view)
@installedPackages.prepend(view)
else
@installedViews.children(":eq(#{insertAfterIndex})").after(view)
@installedPackages.children(":eq(#{insertAfterIndex})").after(view)
@updateInstalledCount()
filterPackages: (filterString) ->
for children in [@installedViews.children(), @availableViews.children()]
for children in [@installedPackages.children(), @availablePackages.children()]
for packageView in children
if /^\s*$/.test(filterString) or stringScore(packageView.getAttribute('name'), filterString)
$(packageView).show()

View File

@ -61,63 +61,63 @@ describe "PackagePanel", ->
panel = new PackagePanel
waitsFor ->
panel.installedViews.children().length > 0
panel.installedPackages.children().length == 3
describe 'Installed tab', ->
it "lists all installed packages with a link to enable or disable the package", ->
p1View = panel.installedViews.find("[name='p1']").view()
p1View = panel.installedPackages.find("[name='p1']").view()
expect(p1View).toExist()
expect(p1View.enableToggle.find('a').text()).toBe 'Enable'
p2View = panel.installedViews.find("[name='p2']").view()
p2View = panel.installedPackages.find("[name='p2']").view()
expect(p2View).toExist()
expect(p2View.enableToggle.find('a').text()).toBe 'Disable'
p3View = panel.installedViews.find("[name='p3']").view()
p3View = panel.installedPackages.find("[name='p3']").view()
expect(p3View).toExist()
expect(p3View.enableToggle.find('a').text()).toBe 'Enable'
describe "when the core.disabledPackages array changes", ->
it "updates the checkboxes for newly disabled / enabled packages", ->
config.set('core.disabledPackages', ['p2'])
p1View = panel.installedViews.find("[name='p1']").view()
p1View = panel.installedPackages.find("[name='p1']").view()
expect(p1View.enableToggle.find('a').text()).toBe 'Disable'
p2View = panel.installedViews.find("[name='p2']").view()
p2View = panel.installedPackages.find("[name='p2']").view()
expect(p2View.enableToggle.find('a').text()).toBe 'Enable'
p3View = panel.installedViews.find("[name='p3']").view()
p3View = panel.installedPackages.find("[name='p3']").view()
expect(p3View.enableToggle.find('a').text()).toBe 'Disable'
describe "when the disable link is clicked", ->
it "adds the package name to the disabled packages array", ->
p2View = panel.installedViews.find("[name='p2']").view()
p2View = panel.installedPackages.find("[name='p2']").view()
p2View.enableToggle.find('a').click()
expect(configObserver).toHaveBeenCalledWith(['p1', 'p3', 'p2'])
describe "when the enable link is clicked", ->
it "removes the package name from the disabled packages array", ->
p3View = panel.installedViews.find("[name='p3']").view()
p3View = panel.installedPackages.find("[name='p3']").view()
p3View.enableToggle.find('a').click()
expect(configObserver).toHaveBeenCalledWith(['p1'])
describe "when Uninstall is clicked", ->
it "removes the package from the tab", ->
expect(panel.installedViews.find("[name='p1']")).toExist()
p1View = panel.installedViews.find("[name='p1']").view()
expect(panel.installedPackages.find("[name='p1']")).toExist()
p1View = panel.installedPackages.find("[name='p1']").view()
expect(p1View.defaultAction.text()).toBe 'Uninstall'
p1View.defaultAction.click()
expect(panel.installedViews.find("[name='p1']")).not.toExist()
expect(panel.installedPackages.find("[name='p1']")).not.toExist()
describe 'Available tab', ->
it 'lists all available packages', ->
panel.availableLink.click()
panel.attachToDom()
expect(panel.available.packagesArea.children('.panel').length).toBe 3
p4View = panel.available.packagesArea.children('.panel:eq(0)').view()
p5View = panel.available.packagesArea.children('.panel:eq(1)').view()
p6View = panel.available.packagesArea.children('.panel:eq(2)').view()
expect(panel.availablePackages.children('.panel').length).toBe 3
p4View = panel.availablePackages.children('.panel:eq(0)').view()
p5View = panel.availablePackages.children('.panel:eq(1)').view()
p6View = panel.availablePackages.children('.panel:eq(2)').view()
expect(p4View.name.text()).toBe 'p4'
expect(p5View.name.text()).toBe 'p5'
@ -144,10 +144,10 @@ describe "PackagePanel", ->
describe "when Install is clicked", ->
it "adds the package to the Installed tab", ->
expect(panel.installedViews.find("[name='p4']")).not.toExist()
expect(panel.available.find("[name='p4']")).toExist()
p4View = panel.available.find("[name='p4']").view()
expect(panel.installedPackages.find("[name='p4']")).not.toExist()
expect(panel.availablePackages.find("[name='p4']")).toExist()
p4View = panel.availablePackages.find("[name='p4']").view()
expect(p4View.defaultAction.text()).toBe 'Install'
p4View.defaultAction.click()
expect(panel.installedViews.find("[name='p4']")).toExist()
expect(panel.installedPackages.find("[name='p4']")).toExist()
expect(p4View.defaultAction.text()).toBe 'Uninstall'