 describe 'UpdatesPanel', ->
   panel = null
   packageManager = new PackageManager
+  [resolveOutdated, rejectOutdated] = []
 
   beforeEach ->
+    # This spy is only needed for the Check for Updates specs,
+    # but we have to instantiate it here because we need to pass the spy to the UpdatesPanel
+    spyOn(packageManager, 'getOutdated').andReturn(new Promise((resolve, reject) -> [resolveOutdated, rejectOutdated] = [resolve, reject]))
     panel = new UpdatesPanel(packageManager)
+    jasmine.attachToDOM(panel[0])
 
   it "shows updates when updates are available", ->
     pack =

        notifications[0].options.buttons[0].onDidClick()
        expect(atom.restartApplication).toHaveBeenCalled()

    it 'disables the Update All button if all updates succeed', ->
      expect(panel.updateAllButton.prop('disabled')).toBe false
      panel.updateAll()


    expect(panel.updatesContainer.children().length).toBe(0)
    expect(panel.noUpdatesMessage.css('display')).not.toBe('none')

  describe "the Update All button", ->
    packA =
      name: 'test-package-a'
      description: 'some description'
