Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

Commit

Permalink
Use button instead of which in specs
Browse files Browse the repository at this point in the history
  • Loading branch information
50Wliu committed Nov 15, 2017
1 parent bbbb653 commit 19a76b7
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 25 deletions.
4 changes: 2 additions & 2 deletions spec/event-helpers.coffee
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
buildMouseEvent = (type, target, {which, ctrlKey}={}) ->
buildMouseEvent = (type, target, {button, ctrlKey}={}) ->
event = new MouseEvent(type, {bubbles: true, cancelable: true})
Object.defineProperty(event, 'which', get: -> which) if which?
Object.defineProperty(event, 'button', get: -> button) if button?
Object.defineProperty(event, 'ctrlKey', get: -> ctrlKey) if ctrlKey?
Object.defineProperty(event, 'target', get: -> target)
Object.defineProperty(event, 'srcObject', get: -> target)
Expand Down
41 changes: 18 additions & 23 deletions spec/tabs-spec.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -258,26 +258,23 @@ describe "TabBarView", ->

describe "when a tab is clicked", ->
it "shows the associated item on the pane and focuses the pane", ->
jasmine.attachToDOM(tabBar.element) # Remove after Atom 1.2.0 is released
spyOn(pane, 'activate')

{mousedown, click} = triggerClickEvent(tabBar.tabAtIndex(0).element, which: 1)
{mousedown, click} = triggerClickEvent(tabBar.tabAtIndex(0).element, button: 0)
expect(pane.getActiveItem()).toBe(pane.getItems()[0])
# allows dragging
expect(mousedown.preventDefault).not.toHaveBeenCalled()
expect(click.preventDefault).toHaveBeenCalled()

{mousedown, click} = triggerClickEvent(tabBar.tabAtIndex(2).element, which: 1)
{mousedown, click} = triggerClickEvent(tabBar.tabAtIndex(2).element, button: 0)
expect(pane.getActiveItem()).toBe(pane.getItems()[2])
# allows dragging
expect(mousedown.preventDefault).not.toHaveBeenCalled()
expect(click.preventDefault).toHaveBeenCalled()
expect(pane.activate.callCount).toBe 2

it "closes the tab when middle clicked", ->
jasmine.attachToDOM(tabBar.element) # Remove after Atom 1.2.0 is released

{click} = triggerClickEvent(tabBar.tabForItem(editor1).element, which: 2)
{click} = triggerClickEvent(tabBar.tabForItem(editor1).element, button: 1)

expect(pane.getItems().length).toBe 2
expect(pane.getItems().indexOf(editor1)).toBe -1
Expand All @@ -288,24 +285,22 @@ describe "TabBarView", ->
expect(click.preventDefault).toHaveBeenCalled()

it "doesn't switch tab when right (or ctrl-left) clicked", ->
jasmine.attachToDOM(tabBar.element) # Remove after Atom 1.2.0 is released

spyOn(pane, 'activate')

{mousedown} = triggerClickEvent(tabBar.tabAtIndex(0).element, which: 3)
{mousedown} = triggerClickEvent(tabBar.tabAtIndex(0).element, button: 2)
expect(pane.getActiveItem()).not.toBe pane.getItems()[0]
expect(mousedown.preventDefault).toHaveBeenCalled()

{mousedown} = triggerClickEvent(tabBar.tabAtIndex(0).element, which: 1, ctrlKey: true)
{mousedown} = triggerClickEvent(tabBar.tabAtIndex(0).element, button: 0, ctrlKey: true)
expect(pane.getActiveItem()).not.toBe pane.getItems()[0]
expect(mousedown.preventDefault).toHaveBeenCalled()

expect(pane.activate).not.toHaveBeenCalled()
# We don't switch tabs, but the pane should still be activated
# because of the mouse click
expect(pane.activate).toHaveBeenCalled()

describe "when a tab's close icon is clicked", ->
it "destroys the tab's item on the pane", ->
jasmine.attachToDOM(tabBar.element) # Remove after Atom 1.2.0 is released

tabBar.tabForItem(editor1).element.querySelector('.close-icon').click()
expect(pane.getItems().length).toBe 2
expect(pane.getItems().indexOf(editor1)).toBe -1
Expand Down Expand Up @@ -543,7 +538,7 @@ describe "TabBarView", ->

describe "when tabs:close-tab is fired", ->
it "closes the active tab", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
atom.commands.dispatch(tabBar.element, 'tabs:close-tab')
expect(pane.getItems().length).toBe 2
expect(pane.getItems().indexOf(item2)).toBe -1
Expand All @@ -552,7 +547,7 @@ describe "TabBarView", ->

describe "when tabs:close-other-tabs is fired", ->
it "closes all other tabs except the active tab", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
atom.commands.dispatch(tabBar.element, 'tabs:close-other-tabs')
expect(pane.getItems().length).toBe 1
expect(tabBar.getTabs().length).toBe 1
Expand All @@ -562,7 +557,7 @@ describe "TabBarView", ->
describe "when tabs:close-tabs-to-right is fired", ->
it "closes only the tabs to the right of the active tab", ->
pane.activateItem(editor1)
triggerClickEvent(tabBar.tabForItem(editor1).element, which: 3)
triggerClickEvent(tabBar.tabForItem(editor1).element, button: 2)
atom.commands.dispatch(tabBar.element, 'tabs:close-tabs-to-right')
expect(pane.getItems().length).toBe 2
expect(tabBar.getTabs().length).toBe 2
Expand All @@ -572,7 +567,7 @@ describe "TabBarView", ->
describe "when tabs:close-tabs-to-left is fired", ->
it "closes only the tabs to the left of the active tab", ->
pane.activateItem(editor1)
triggerClickEvent(tabBar.tabForItem(editor1).element, which: 3)
triggerClickEvent(tabBar.tabForItem(editor1).element, button: 2)
atom.commands.dispatch(tabBar.element, 'tabs:close-tabs-to-left')
expect(pane.getItems().length).toBe 2
expect(tabBar.getTabs().length).toBe 2
Expand All @@ -594,7 +589,7 @@ describe "TabBarView", ->

describe "when tabs:split-up is fired", ->
it "splits the selected tab up", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
expect(atom.workspace.getCenter().getPanes().length).toBe 1

atom.commands.dispatch(tabBar.element, 'tabs:split-up')
Expand All @@ -604,7 +599,7 @@ describe "TabBarView", ->

describe "when tabs:split-down is fired", ->
it "splits the selected tab down", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
expect(atom.workspace.getCenter().getPanes().length).toBe 1

atom.commands.dispatch(tabBar.element, 'tabs:split-down')
Expand All @@ -614,7 +609,7 @@ describe "TabBarView", ->

describe "when tabs:split-left is fired", ->
it "splits the selected tab to the left", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
expect(atom.workspace.getCenter().getPanes().length).toBe 1

atom.commands.dispatch(tabBar.element, 'tabs:split-left')
Expand All @@ -624,7 +619,7 @@ describe "TabBarView", ->

describe "when tabs:split-right is fired", ->
it "splits the selected tab to the right", ->
triggerClickEvent(tabBar.tabForItem(item2).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item2).element, button: 2)
expect(atom.workspace.getCenter().getPanes().length).toBe 1

atom.commands.dispatch(tabBar.element, 'tabs:split-right')
Expand All @@ -635,7 +630,7 @@ describe "TabBarView", ->
describe "when tabs:open-in-new-window is fired", ->
describe "by right-clicking on a tab", ->
beforeEach ->
triggerClickEvent(tabBar.tabForItem(item1).element, which: 3)
triggerClickEvent(tabBar.tabForItem(item1).element, button: 2)
expect(atom.workspace.getCenter().getPanes().length).toBe 1
spyOn(atom, 'open')

Expand Down Expand Up @@ -1252,7 +1247,7 @@ describe "TabBarView", ->
runs ->
pane.activateItem(editor2)
expect(tabBar.tabForItem(editor2).element.querySelector('.title')).toHaveClass 'temp'
triggerMouseEvent('dblclick', tabBar.tabForItem(editor2).element, which: 1)
triggerMouseEvent('dblclick', tabBar.tabForItem(editor2).element, button: 0)
expect(tabBar.tabForItem(editor2).element.querySelector('.title')).not.toHaveClass 'temp'

describe "when editing a file in pending state", ->
Expand Down

0 comments on commit 19a76b7

Please sign in to comment.