/** @babel */

const TextEditor = require('../src/text-editor')

describe('WorkspaceCenter', () => {
  describe('.observeTextEditors()', () => {
    it('invokes the observer with current and future text editors', () => {
      const workspaceCenter = atom.workspace.getCenter()
      const pane = workspaceCenter.getActivePane()
      const observed = []

      const editorAddedBeforeRegisteringObserver = new TextEditor()
      const nonEditorItemAddedBeforeRegisteringObserver = document.createElement(
        'div'
      )
      pane.activateItem(editorAddedBeforeRegisteringObserver)
      pane.activateItem(nonEditorItemAddedBeforeRegisteringObserver)

      workspaceCenter.observeTextEditors(editor => observed.push(editor))

      const editorAddedAfterRegisteringObserver = new TextEditor()
      const nonEditorItemAddedAfterRegisteringObserver = document.createElement(
        'div'
      )
      pane.activateItem(editorAddedAfterRegisteringObserver)
      pane.activateItem(nonEditorItemAddedAfterRegisteringObserver)

      expect(observed).toEqual([
        editorAddedBeforeRegisteringObserver,
        editorAddedAfterRegisteringObserver
      ])
    })
  })
})
