File tree Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Expand file tree Collapse file tree 2 files changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -223,6 +223,24 @@ test('fires shortcut events on Window', () => {
223
223
window . removeEventListener ( 'message' , clickSpy )
224
224
} )
225
225
226
+ test ( 'throws a useful error message when firing events on non-existent nodes' , ( ) => {
227
+ expect ( ( ) => fireEvent ( undefined , new MouseEvent ( 'click' ) ) ) . toThrow (
228
+ 'Unable to fire a "click" event - please provide a DOM element.' ,
229
+ )
230
+ } )
231
+
232
+ test ( 'throws a useful error message when firing events on non-existent nodes (shortcut)' , ( ) => {
233
+ expect ( ( ) => fireEvent . click ( undefined ) ) . toThrow (
234
+ 'Unable to fire a "click" event - please provide a DOM element.' ,
235
+ )
236
+ } )
237
+
238
+ test ( 'throws a useful error message when firing non-events' , ( ) => {
239
+ expect ( ( ) => fireEvent ( document . createElement ( 'div' ) , undefined ) ) . toThrow (
240
+ 'Unable to fire an event - please provide an event object.' ,
241
+ )
242
+ } )
243
+
226
244
test ( 'fires events on Document' , ( ) => {
227
245
const keyDownSpy = jest . fn ( )
228
246
document . addEventListener ( 'keydown' , keyDownSpy )
Original file line number Diff line number Diff line change @@ -345,6 +345,14 @@ const eventAliasMap = {
345
345
}
346
346
347
347
function fireEvent ( element , event ) {
348
+ if ( ! event ) {
349
+ throw new Error ( `Unable to fire an event - please provide an event object.` )
350
+ }
351
+ if ( ! element ) {
352
+ throw new Error (
353
+ `Unable to fire a "${ event . type } " event - please provide a DOM element.` ,
354
+ )
355
+ }
348
356
return element . dispatchEvent ( event )
349
357
}
350
358
@@ -355,6 +363,11 @@ Object.keys(eventMap).forEach(key => {
355
363
const eventName = key . toLowerCase ( )
356
364
357
365
createEvent [ key ] = ( node , init ) => {
366
+ if ( ! node ) {
367
+ throw new Error (
368
+ `Unable to fire a "${ key } " event - please provide a DOM element.` ,
369
+ )
370
+ }
358
371
const eventInit = { ...defaultInit , ...init }
359
372
const { target : { value, files, ...targetProperties } = { } } = eventInit
360
373
if ( value !== undefined ) {
You can’t perform that action at this time.
0 commit comments