mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-21 16:08:24 +03:00
Fix broken specs
This commit is contained in:
parent
8bf877e400
commit
3f83d42afc
@ -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()
|
||||||
|
@ -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'
|
||||||
|
Loading…
Reference in New Issue
Block a user