diff --git a/package.json b/package.json
index 4436388..a595faa 100644
--- a/package.json
+++ b/package.json
@@ -75,7 +75,7 @@
"eslint-plugin-simple-import-sort": "^5.0.3",
"eslint-plugin-standard": "^4.0.1",
"husky": "^4.2.5",
- "jest": "^26.0.1",
+ "jest": "^27.0.6",
"jest-watch-typeahead": "^0.6.0",
"lint-staged": "^10.2.11",
"preact": "^10.0.0-rc.1",
@@ -114,6 +114,7 @@
]
},
"jest": {
+ "testEnvironment": "jsdom",
"watchPlugins": [
"typeahead/filename",
"typeahead/testname"
diff --git a/src/__tests__/events.js b/src/__tests__/events.js
index ff0d4e2..921c0b6 100644
--- a/src/__tests__/events.js
+++ b/src/__tests__/events.js
@@ -125,15 +125,18 @@ const eventTypes = [
type: 'Transition',
events: ['transitionEnd'],
elementType: 'div'
+ },
+ {
+ type: 'Pointer',
+ events: ['pointerEnter', 'pointerLeave'],
+ elementType: 'div'
}
]
-eventTypes.forEach(({
- type, events, elementType, init
-}) => {
+eventTypes.forEach(({ type, events, elementType, init }) => {
describe(`${type} Events`, () => {
events.forEach((eventName) => {
- const eventProp = `on${eventName.toLowerCase()}`
+ const eventProp = `on${eventName[0].toUpperCase() + eventName.slice(1)}`
it(`triggers ${eventProp}`, () => {
const ref = createRef()
@@ -146,7 +149,7 @@ eventTypes.forEach(({
})
)
- fireEvent[eventName](ref.current, init)
+ expect(fireEvent[eventName](ref.current, init)).toBe(true)
expect(spy).toHaveBeenCalledTimes(1)
})
@@ -157,28 +160,36 @@ eventTypes.forEach(({
test('onInput works', () => {
const handler = jest.fn()
- const { container: { firstChild: input } } = render(
- ()
- )
+ const {
+ container: { firstChild: input }
+ } = render()
- fireEvent.input(input, { target: { value: 'a' } })
+ expect(fireEvent.input(input, { target: { value: 'a' } })).toBe(true)
expect(handler).toHaveBeenCalledTimes(1)
})
test('calling `fireEvent` directly works too', () => {
- const handleEvent = jest.fn()
+ const handler = jest.fn()
- const { container: { firstChild: button } } = render(
- ()
- )
+ const {
+ container: { firstChild: button }
+ } = render()
- fireEvent(
+ expect(fireEvent(
button,
new Event('MouseEvent', {
bubbles: true,
cancelable: true,
button: 0
})
+ )).toBe(true)
+})
+
+test('`fireEvent` returns false when prevented', () => {
+ const { container: { firstChild: button } } = render(
+ (