diff --git a/src/event/createEvent.ts b/src/event/createEvent.ts index c6b1462d..72f754e6 100644 --- a/src/event/createEvent.ts +++ b/src/event/createEvent.ts @@ -268,7 +268,7 @@ function initPointerEvent( tiltX: sanitizeNumber(tiltX), tiltY: sanitizeNumber(tiltY), twist: sanitizeNumber(twist), - pointerType: String(pointerType), + pointerType: String(pointerType ?? ''), isPrimary: Boolean(isPrimary), }) } diff --git a/tests/event/behavior/keypress.ts b/tests/event/behavior/keypress.ts index c4007bae..38d60e05 100644 --- a/tests/event/behavior/keypress.ts +++ b/tests/event/behavior/keypress.ts @@ -101,6 +101,7 @@ cases( expect(eventWasFired('click')).toBe(hasClick) if (hasClick) { expect(getEvents('click')[0]).toHaveProperty('detail', 0) + expect(getEvents('click')[0]).toHaveProperty('pointerType', '') } }, { diff --git a/tests/event/createEvent.ts b/tests/event/createEvent.ts new file mode 100644 index 00000000..b81d50a4 --- /dev/null +++ b/tests/event/createEvent.ts @@ -0,0 +1,14 @@ +import {createEvent} from '#src/event/createEvent' +import {render} from '#testHelpers' + +test('it initializes pointerType to empty string by default', () => { + const {element} = render(``) + const event = createEvent('click', element) + expect(event).toHaveProperty('pointerType', '') +}) + +test('it preserves explicitly provided pointerType', () => { + const {element} = render(``) + const event = createEvent('pointerdown', element, {pointerType: 'mouse'}) + expect(event).toHaveProperty('pointerType', 'mouse') +})