Skip to content

Commit d9f23df

Browse files
committed
feat: add support for globalThis in event handling functions
1 parent e395d5b commit d9f23df

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

src/__tests__/events.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,22 @@ test('fires events on Document', () => {
434434
document.removeEventListener('keydown', keyDownSpy)
435435
})
436436

437+
test('fires events on globalThis', () => {
438+
// eslint-enable no-undef
439+
const clickSpy = jest.fn()
440+
globalThis.addEventListener('click', clickSpy)
441+
fireEvent.click(globalThis)
442+
expect(clickSpy).toHaveBeenCalledTimes(1)
443+
globalThis.removeEventListener('click', clickSpy)
444+
// eslint-disable no-undef
445+
})
446+
447+
test('creates events for globalThis', () => {
448+
// eslint-disable-next-line no-undef
449+
const event = createEvent.click(globalThis)
450+
expect(event).toBeInstanceOf(MouseEvent)
451+
})
452+
437453
test('can create generic events', () => {
438454
const el = document.createElement('div')
439455
const eventName = 'my-custom-event'

types/__tests__/type-tests.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,11 @@ export function eventTest() {
210210
}
211211
fireEvent.click(element.firstChild)
212212

213+
// GlobalThis
214+
fireEvent.click(globalThis)
215+
const globalThisEvent = createEvent('customEvent', globalThis)
216+
fireEvent(globalThis, globalThisEvent)
217+
213218
// Custom event
214219
const customEvent = createEvent('customEvent', element)
215220
fireEvent(element, customEvent)

types/events.d.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,24 +92,24 @@ export type EventType =
9292
| 'pageShow'
9393

9494
export type FireFunction = (
95-
element: Document | Element | Window | Node,
95+
element: Document | Element | Window | Node | GlobalThis,
9696
event: Event,
9797
) => boolean
9898
export type FireObject = {
9999
[K in EventType]: (
100-
element: Document | Element | Window | Node,
100+
element: Document | Element | Window | Node | GlobalThis,
101101
options?: {},
102102
) => boolean
103103
}
104104
export type CreateFunction = (
105105
eventName: string,
106-
node: Document | Element | Window | Node,
106+
node: Document | Element | Window | Node | GlobalThis,
107107
init?: {},
108108
options?: {EventType?: string; defaultInit?: {}},
109109
) => Event
110110
export type CreateObject = {
111111
[K in EventType]: (
112-
element: Document | Element | Window | Node,
112+
element: Document | Element | Window | Node | GlobalThis,
113113
options?: {},
114114
) => Event
115115
}

0 commit comments

Comments
 (0)