aboutsummaryrefslogtreecommitdiff
path: root/atom/packages/vim-mode/spec/vim-mode-spec.coffee
diff options
context:
space:
mode:
authorBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
committerBen Beltran <ben@nsovocal.com>2015-07-10 11:12:25 -0500
commit24c7594d62d8d7fbbcdb64b11ce4adc5d8e6991a (patch)
treeded312222bb108923da1820ba40b04d710d20e5b /atom/packages/vim-mode/spec/vim-mode-spec.coffee
parenteb786e82d170e2abc351a432ade616d6ecdeeb6b (diff)
Adds atom
Diffstat (limited to 'atom/packages/vim-mode/spec/vim-mode-spec.coffee')
-rw-r--r--atom/packages/vim-mode/spec/vim-mode-spec.coffee56
1 files changed, 56 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/spec/vim-mode-spec.coffee b/atom/packages/vim-mode/spec/vim-mode-spec.coffee
new file mode 100644
index 0000000..0f4d8b8
--- /dev/null
+++ b/atom/packages/vim-mode/spec/vim-mode-spec.coffee
@@ -0,0 +1,56 @@
+describe "VimMode", ->
+ [editor, editorElement, workspaceElement] = []
+
+ beforeEach ->
+ workspaceElement = atom.views.getView(atom.workspace)
+
+ waitsForPromise ->
+ atom.workspace.open()
+
+ waitsForPromise ->
+ atom.packages.activatePackage('vim-mode')
+
+ waitsForPromise ->
+ atom.packages.activatePackage('status-bar')
+
+ runs ->
+ editor = atom.workspace.getActiveTextEditor()
+ editorElement = atom.views.getView(editor)
+
+ describe ".activate", ->
+ it "puts the editor in command-mode initially by default", ->
+ expect(editorElement.classList.contains('vim-mode')).toBe(true)
+ expect(editorElement.classList.contains('command-mode')).toBe(true)
+
+ it "shows the current vim mode in the status bar", ->
+ statusBarTile = workspaceElement.querySelector("#status-bar-vim-mode")
+ expect(statusBarTile.textContent).toBe("Command")
+ atom.commands.dispatch(editorElement, "vim-mode:activate-insert-mode")
+ expect(statusBarTile.textContent).toBe("Insert")
+
+ it "doesn't register duplicate command listeners for editors", ->
+ editor.setText("12345")
+ editor.setCursorBufferPosition([0, 0])
+
+ pane = atom.workspace.getActivePane()
+ newPane = pane.splitRight()
+ pane.removeItem(editor)
+ newPane.addItem(editor)
+
+ atom.commands.dispatch(editorElement, "vim-mode:move-right")
+ expect(editor.getCursorBufferPosition()).toEqual([0, 1])
+
+ describe ".deactivate", ->
+ it "removes the vim classes from the editor", ->
+ atom.packages.deactivatePackage('vim-mode')
+ expect(editorElement.classList.contains("vim-mode")).toBe(false)
+ expect(editorElement.classList.contains("command-mode")).toBe(false)
+
+ it "removes the vim commands from the editor element", ->
+ vimCommands = ->
+ atom.commands.findCommands(target: editorElement).filter (cmd) ->
+ cmd.name.startsWith("vim-mode:")
+
+ expect(vimCommands().length).toBeGreaterThan(0)
+ atom.packages.deactivatePackage('vim-mode')
+ expect(vimCommands().length).toBe(0)