From 614292e0d41bf014d5ac1edb237993d6e322a20f Mon Sep 17 00:00:00 2001 From: Jacob Jewell Date: Tue, 12 Apr 2016 00:52:46 -0400 Subject: [PATCH] [BUGFIX beta] Fix mouseenter typo in ember-testing helpers (#13310) (cherry picked from commit 3970129d6768aff73b7e5e54aa8c265f363eba97) --- packages/ember-testing/lib/helpers.js | 2 +- packages/ember-testing/tests/helpers_test.js | 32 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/packages/ember-testing/lib/helpers.js b/packages/ember-testing/lib/helpers.js index 1b2020542d9..f0dc0fe27e1 100644 --- a/packages/ember-testing/lib/helpers.js +++ b/packages/ember-testing/lib/helpers.js @@ -19,7 +19,7 @@ var keyboardEventTypes, mouseEventTypes, buildKeyboardEvent, buildMouseEvent, bu if (isEnabled('ember-test-helpers-fire-native-events')) { let defaultEventOptions = { canBubble: true, cancelable: true }; keyboardEventTypes = ['keydown', 'keypress', 'keyup']; - mouseEventTypes = ['click', 'mousedown', 'mouseup', 'dblclick', 'mousenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover']; + mouseEventTypes = ['click', 'mousedown', 'mouseup', 'dblclick', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover']; buildKeyboardEvent = function buildKeyboardEvent(type, options = {}) { diff --git a/packages/ember-testing/tests/helpers_test.js b/packages/ember-testing/tests/helpers_test.js index 6ba6128f2b1..b58578477bf 100644 --- a/packages/ember-testing/tests/helpers_test.js +++ b/packages/ember-testing/tests/helpers_test.js @@ -447,6 +447,38 @@ QUnit.test('`click` triggers native events with simulated X/Y coordinates', func }); }); +QUnit.test('`triggerEvent` with mouseenter triggers native events with simulated X/Y coordinates', function() { + expect(5); + + var triggerEvent, wait, evt; + + App.IndexView = EmberView.extend({ + classNames: 'index-view', + + didInsertElement() { + this.element.addEventListener('mouseenter', e => evt = e); + } + }); + + + Ember.TEMPLATES.index = compile('some text'); + + run(App, App.advanceReadiness); + + triggerEvent = App.testHelpers.triggerEvent; + wait = App.testHelpers.wait; + + return wait().then(function() { + return triggerEvent('.index-view', 'mouseenter'); + }).then(function() { + ok(evt instanceof window.Event, 'The event is an instance of MouseEvent'); + ok(typeof evt.screenX === 'number' && evt.screenX > 0, 'screenX is correct'); + ok(typeof evt.screenY === 'number' && evt.screenY > 0, 'screenY is correct'); + ok(typeof evt.clientX === 'number' && evt.clientX > 0, 'clientX is correct'); + ok(typeof evt.clientY === 'number' && evt.clientY > 0, 'clientY is correct'); + }); +}); + } QUnit.test('`wait` waits for outstanding timers', function() {