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> *