Use an editor in the file finder instead of an input element.

This commit is contained in:
Nathan Sobo
2012-03-15 13:41:37 -06:00
parent a559e52352
commit 60056e57fb
5 changed files with 32 additions and 24 deletions

View File

@@ -7,6 +7,7 @@ describe 'FileFinder', ->
beforeEach ->
urls = ['app.coffee', 'buffer.coffee', 'atom/app.coffee', 'atom/buffer.coffee']
finder = new FileFinder({urls})
finder.enableKeymap()
describe "initialize", ->
it "populates the ol with all urls and selects the first element", ->
@@ -16,8 +17,7 @@ describe 'FileFinder', ->
describe "when characters are typed into the input element", ->
it "displays matching urls in the ol element and selects the first", ->
finder.input.val('ap')
finder.input.trigger 'input'
finder.editor.insertText('ap')
expect(finder.urlList.children().length).toBe 2
expect(finder.urlList.find('li:contains(app.coffee)').length).toBe 2
@@ -26,8 +26,8 @@ describe 'FileFinder', ->
expect(finder.urlList.find('li.selected').length).toBe 1
# we should clear the list before re-populating it
finder.input.val('a/ap')
finder.input.trigger 'input'
finder.editor.setCursorScreenPosition([0, 0])
finder.editor.insertText('a/')
expect(finder.urlList.children().length).toBe 1
expect(finder.urlList.find('li:contains(atom/app.coffee)').length).toBe 1
@@ -37,13 +37,13 @@ describe 'FileFinder', ->
expect(finder.find('li:eq(0)')).toHaveClass "selected"
expect(finder.find('li:eq(2)')).not.toHaveClass "selected"
finder.trigger 'move-down'
finder.trigger 'move-down'
finder.editor.trigger keydownEvent('down')
finder.editor.trigger keydownEvent('down')
expect(finder.find('li:eq(0)')).not.toHaveClass "selected"
expect(finder.find('li:eq(2)')).toHaveClass "selected"
finder.trigger 'move-up'
finder.editor.trigger keydownEvent('up')
expect(finder.find('li:eq(0)')).not.toHaveClass "selected"
expect(finder.find('li:eq(1)')).toHaveClass "selected"
@@ -51,11 +51,11 @@ describe 'FileFinder', ->
it "does not fall off the end or begining of the list", ->
expect(finder.find('li:first')).toHaveClass "selected"
finder.trigger 'move-up'
finder.editor.trigger keydownEvent('up')
expect(finder.find('li:first')).toHaveClass "selected"
for i in [1..urls.length+10]
finder.trigger 'move-down'
finder.editor.trigger keydownEvent('down')
expect(finder.find('li:last')).toHaveClass "selected"
@@ -64,19 +64,20 @@ describe 'FileFinder', ->
beforeEach ->
finder = new FileFinder({urls, selected: selectedCallback})
finder.enableKeymap()
it "when a file is selected Editor.open is called", ->
spyOn(finder, 'remove')
finder.moveDown()
finder.trigger 'select'
finder.editor.trigger keydownEvent('enter')
expect(selectedCallback).toHaveBeenCalledWith(urls[1])
expect(finder.remove).toHaveBeenCalled()
it "when no file is selected, does nothing", ->
spyOn(atom, 'open')
finder.input.val('this-will-match-nothing-hopefully')
finder.editor.insertText('this-will-match-nothing-hopefully')
finder.populateUrlList()
finder.trigger 'select'
finder.editor.trigger keydownEvent('enter')
expect(atom.open).not.toHaveBeenCalled()
describe "findMatches(queryString)", ->