From c958e2431fb7a967e53c97d705d49e3fabd46f28 Mon Sep 17 00:00:00 2001 From: Sergey Matyunin Date: Thu, 3 Sep 2026 16:52:27 +0300 Subject: [PATCH] test: isolate room pointer modality witness Issue: #440 User-Visible: no --- demo/smoke_room_tooltip_toggle.mjs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/demo/smoke_room_tooltip_toggle.mjs b/demo/smoke_room_tooltip_toggle.mjs index 5ea9f801..2f4aad2b 100644 --- a/demo/smoke_room_tooltip_toggle.mjs +++ b/demo/smoke_room_tooltip_toggle.mjs @@ -110,6 +110,11 @@ const result = await page.evaluate(async () => { out.roomHighlightSurvives = card._hoverRoom !== null && !!root().querySelector('.room-hover-fill-layer,.room-hover-outline-layer'); + // The card also has a capture-phase gesture safety net. Remove that one + // listener briefly so this probe proves the room's tooltip-off early-return + // branch owns modality rather than receiving accidental parent coverage. + const gestureOwner = root().querySelector('ha-card'); + gestureOwner.removeEventListener('pointermove', card._touchGestureGuard, { capture: true }); room().dispatchEvent(pointer('pointermove', 'pen', 190, 190)); await card.updateComplete; out.disabledPenMoveUpdatesModality = card._pointerModality.modality === 'pen'; @@ -121,6 +126,7 @@ const result = await page.evaluate(async () => { out.disabledTouchMoveUpdatesModality = card._pointerModality.modality === 'touch'; out.disabledTouchMoveClearsMouseHover = card._hoverRoom === null && card._tip === null; out.disabledNonMouseMovesStillSkipArea = roomAreaCalls === 0; + gestureOwner.addEventListener('pointermove', card._touchGestureGuard, { capture: true }); root().querySelector('.dev').dispatchEvent(mouse('pointermove', 200, 200)); await card.updateComplete;