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
+ * <caption>
+ * 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`.
+ * </caption>
+ *
+ * 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 <LPSego3+dev@gmail.com>
---
 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) => {
  * <caption>
  * 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`.
  * </caption>
  *

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) => {
  * <caption>
  * 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`.
  * </caption>
  *