From edd2b585f2381687068f4a4ce7b5e158887c6c1e Mon Sep 17 00:00:00 2001
From: Yann Bertrand <5855339+yannbertrand@users.noreply.github.com>
Date: Tue, 12 Oct 2021 15:54:55 +0200
Subject: [PATCH 1/3] Add a `triggerEvent` doc example
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
My team and I have been struggling with the `triggerEvent` options parameter.
Our usecase is fixing [a Firefox bug](https://stackoverflow.com/questions/46831247/select-triggers-mouseleave-event-on-parent-element-in-mozilla-firefox) where the mouseleave event is triggered when hovering a select option even if the mouse is still hover the target element. We did some acceptance tests to trigger the event with or without a given `relatedTarget` element.
Hopefully this PR will help other users too 😄.
---
.../@ember/test-helpers/dom/trigger-event.ts | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
index 25e590523..5ec658e6b 100644
--- a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
+++ b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
@@ -53,6 +53,22 @@ registerHook('triggerEvent', 'start', (target: Target, eventType: string) => {
* }
* }
* )
+ *
+ *
+ * @example
+ *
+ * Using `triggerEvent` to simulate a mouseleave event
+ *
+ * `triggerEvent` allows to trigger all sorts of mouse events. The `options` param can contain all params from a [MouseEventInit](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/MouseEvent) object.
+ * If supplied, the `options.relatedTarget` has to be an HTML `Element`.
+ *
+ *
+ * const target = find('#zone')
+ * triggerEvent(
+ * target,
+ * 'mouseleave',
+ * { relatedTarget: target }
+ * )
*/
export default function triggerEvent(
target: Target,
From 8d2142a4d42db227e36c15f293d56880ccbe38ef Mon Sep 17 00:00:00 2001
From: Yann Bertrand <5855339+yannbertrand@users.noreply.github.com>
Date: Sat, 30 Oct 2021 09:07:30 +0200
Subject: [PATCH 2/3] Simplify example
Co-authored-by: NullVoxPopuli
---
addon-test-support/@ember/test-helpers/dom/trigger-event.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
index 5ec658e6b..a450bdbae 100644
--- a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
+++ b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
@@ -59,7 +59,8 @@ registerHook('triggerEvent', 'start', (target: Target, eventType: string) => {
*
* Using `triggerEvent` to simulate a mouseleave event
*
- * `triggerEvent` allows to trigger all sorts of mouse events. The `options` param can contain all params from a [MouseEventInit](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/MouseEvent) object.
+ * `triggerEvent` provides a way to to trigger any [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event).
+ * The `options` param can contain any sub set of properties from each of the Event sub-types.
* If supplied, the `options.relatedTarget` has to be an HTML `Element`.
*
*
From c12f903fd62d31ac133cec4f7886bb99fcec6852 Mon Sep 17 00:00:00 2001
From: Yann Bertrand <5855339+yannbertrand@users.noreply.github.com>
Date: Fri, 12 Nov 2021 10:42:37 +0100
Subject: [PATCH 3/3] Fix linting issue
---
addon-test-support/@ember/test-helpers/dom/trigger-event.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
index a450bdbae..175d2154a 100644
--- a/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
+++ b/addon-test-support/@ember/test-helpers/dom/trigger-event.ts
@@ -59,8 +59,8 @@ registerHook('triggerEvent', 'start', (target: Target, eventType: string) => {
*
* Using `triggerEvent` to simulate a mouseleave event
*
- * `triggerEvent` provides a way to to trigger any [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event).
- * The `options` param can contain any sub set of properties from each of the Event sub-types.
+ * `triggerEvent` provides a way to to trigger any [Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)
+ * The `options` param can contain any sub set of properties from each of the Event sub-types.
* If supplied, the `options.relatedTarget` has to be an HTML `Element`.
*
*