From bfc7395813a0090898a0e2dc255fab86145bd81e Mon Sep 17 00:00:00 2001 From: Blackbaud-SteveBrush Date: Wed, 28 Mar 2018 11:14:12 -0400 Subject: [PATCH 1/2] Added test utility from SKY UX --- runtime/testing/browser/index.ts | 1 + runtime/testing/browser/test-utility.ts | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 runtime/testing/browser/test-utility.ts diff --git a/runtime/testing/browser/index.ts b/runtime/testing/browser/index.ts index b09b8c5e..89db5e67 100644 --- a/runtime/testing/browser/index.ts +++ b/runtime/testing/browser/index.ts @@ -1,2 +1,3 @@ export * from './matchers'; export * from './test-module'; +export * from './test-utility'; diff --git a/runtime/testing/browser/test-utility.ts b/runtime/testing/browser/test-utility.ts new file mode 100644 index 00000000..9aed88d2 --- /dev/null +++ b/runtime/testing/browser/test-utility.ts @@ -0,0 +1,23 @@ +export interface SkyAppTestUtilityEventArgs { + bubbles?: boolean; + cancelable?: boolean; +} + +function getWindow() { + return window; +} + +export class SkyAppTestUtility { + public static fireDomEvent( + element: EventTarget, + eventName: string, + args?: SkyAppTestUtilityEventArgs + ) { + const defaults = { bubbles: true, cancelable: true }; + const options = Object.assign({}, defaults, args); + const event = getWindow().document.createEvent('CustomEvent'); + + event.initEvent(eventName, options.bubbles, options.cancelable); + element.dispatchEvent(event); + } +} From ba80806a8f88c609a9f1cbb490b8342323c88087 Mon Sep 17 00:00:00 2001 From: Blackbaud-SteveBrush Date: Thu, 29 Mar 2018 13:50:35 -0400 Subject: [PATCH 2/2] Separated event options into separate file --- .../browser/test-utility-dom-event-options.ts | 4 ++++ runtime/testing/browser/test-utility.ts | 18 ++++++------------ 2 files changed, 10 insertions(+), 12 deletions(-) create mode 100644 runtime/testing/browser/test-utility-dom-event-options.ts diff --git a/runtime/testing/browser/test-utility-dom-event-options.ts b/runtime/testing/browser/test-utility-dom-event-options.ts new file mode 100644 index 00000000..f4c5cfcb --- /dev/null +++ b/runtime/testing/browser/test-utility-dom-event-options.ts @@ -0,0 +1,4 @@ +export interface SkyAppTestUtilityDomEventOptions { + bubbles?: boolean; + cancelable?: boolean; +} diff --git a/runtime/testing/browser/test-utility.ts b/runtime/testing/browser/test-utility.ts index 9aed88d2..71fc0e31 100644 --- a/runtime/testing/browser/test-utility.ts +++ b/runtime/testing/browser/test-utility.ts @@ -1,23 +1,17 @@ -export interface SkyAppTestUtilityEventArgs { - bubbles?: boolean; - cancelable?: boolean; -} - -function getWindow() { - return window; -} +import { SkyAppTestUtilityDomEventOptions } from './test-utility-dom-event-options'; export class SkyAppTestUtility { public static fireDomEvent( element: EventTarget, eventName: string, - args?: SkyAppTestUtilityEventArgs + options?: SkyAppTestUtilityDomEventOptions ) { const defaults = { bubbles: true, cancelable: true }; - const options = Object.assign({}, defaults, args); - const event = getWindow().document.createEvent('CustomEvent'); + const { bubbles, cancelable } = Object.assign({}, defaults, options); + + const event = document.createEvent('CustomEvent'); + event.initEvent(eventName, bubbles, cancelable); - event.initEvent(eventName, options.bubbles, options.cancelable); element.dispatchEvent(event); } }