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')
+})