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

View File

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