From c6722ab75ece854339b3a98311f5a5fa6abca440 Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Sun, 13 Sep 2020 18:10:05 +0200 Subject: [PATCH 1/4] test: Add full PointerEvent test suite --- src/__tests__/events.js | 58 +++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/src/__tests__/events.js b/src/__tests__/events.js index bc36dab3..77d9afd6 100644 --- a/src/__tests__/events.js +++ b/src/__tests__/events.js @@ -62,6 +62,26 @@ const eventTypes = [ ], elementType: 'button', }, + { + // PointerEvent isn't supported in JSDOM. + // We're using MouseEvent since PointerEvent extends it. + // type: 'Pointer', + type: 'Mouse', + events: [ + 'pointerOver', + 'pointerEnter', + 'pointerDown', + 'pointerMove', + 'pointerUp', + 'pointerCancel', + 'pointerOut', + 'pointerLeave', + // FIXME: Issue in dtl? Manual dispatch works in test "gotPointerCapture" + // 'gotPointerCapture', + // 'lostPointerCapture', + ], + elementType: 'button', + }, { type: 'Selection', events: ['select'], @@ -197,26 +217,6 @@ test('onChange works', () => { expect(handleChange).toHaveBeenCalledTimes(1) }) -test('calling `onPointerEnter` directly works too', () => { - const handlePointerEnter = jest.fn() - const handlePointerLeave = jest.fn() - const {container} = render( -
-
, - ) - const button = container.firstChild.firstChild - - fireEvent.pointerEnter(button) - expect(handlePointerEnter).toHaveBeenCalledTimes(1) - - fireEvent.pointerLeave(button) - expect(handlePointerLeave).toHaveBeenCalledTimes(1) -}) - test('calling `fireEvent` directly works too', () => { const handleEvent = jest.fn() const { @@ -258,3 +258,21 @@ test('blur/foucs bubbles in react', () => { expect(handleFocus).toHaveBeenCalledTimes(1) expect(handleBubbledFocus).toHaveBeenCalledTimes(1) }) + +test('gotPointerCapture', () => { + const handlePointerCapture = jest.fn() + const {container} = render( + , + ) + const button = container.querySelector('button') + + fireEvent( + button, + new MouseEvent('gotpointercapture', { + cancelable: true, + bubbles: true, + }), + ) + + expect(handlePointerCapture).toHaveBeenCalledTimes(1) +}) From 6bcb456d865b85c6a00a15e2ab789c0e193100c1 Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Sun, 13 Sep 2020 18:31:03 +0200 Subject: [PATCH 2/4] Confirmed DTL issue --- src/__tests__/events.js | 23 ++--------------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/src/__tests__/events.js b/src/__tests__/events.js index 77d9afd6..6d17590c 100644 --- a/src/__tests__/events.js +++ b/src/__tests__/events.js @@ -76,9 +76,8 @@ const eventTypes = [ 'pointerCancel', 'pointerOut', 'pointerLeave', - // FIXME: Issue in dtl? Manual dispatch works in test "gotPointerCapture" - // 'gotPointerCapture', - // 'lostPointerCapture', + 'gotPointerCapture', + 'lostPointerCapture', ], elementType: 'button', }, @@ -258,21 +257,3 @@ test('blur/foucs bubbles in react', () => { expect(handleFocus).toHaveBeenCalledTimes(1) expect(handleBubbledFocus).toHaveBeenCalledTimes(1) }) - -test('gotPointerCapture', () => { - const handlePointerCapture = jest.fn() - const {container} = render( - , - ) - const button = container.querySelector('button') - - fireEvent( - button, - new MouseEvent('gotpointercapture', { - cancelable: true, - bubbles: true, - }), - ) - - expect(handlePointerCapture).toHaveBeenCalledTimes(1) -}) From 00c8e556590255d52ef8e88c7b8c2554080f2044 Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Sun, 13 Sep 2020 18:41:33 +0200 Subject: [PATCH 3/4] Use actual interface --- src/__tests__/events.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/__tests__/events.js b/src/__tests__/events.js index 6d17590c..0e28848f 100644 --- a/src/__tests__/events.js +++ b/src/__tests__/events.js @@ -63,10 +63,7 @@ const eventTypes = [ elementType: 'button', }, { - // PointerEvent isn't supported in JSDOM. - // We're using MouseEvent since PointerEvent extends it. - // type: 'Pointer', - type: 'Mouse', + type: 'Pointer', events: [ 'pointerOver', 'pointerEnter', From 138e1ef4c2e2d44afb32e577cad10791ec1e455a Mon Sep 17 00:00:00 2001 From: Sebastian Silbermann Date: Sun, 13 Sep 2020 19:23:05 +0200 Subject: [PATCH 4/4] bump dtl --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61bfefef..291427b3 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "license": "MIT", "dependencies": { "@babel/runtime": "^7.11.2", - "@testing-library/dom": "^7.23.0" + "@testing-library/dom": "^7.24.2" }, "devDependencies": { "@testing-library/jest-dom": "^5.11.4",