From 8a417539e0d15af06bb55900bbeded2974eafd1d Mon Sep 17 00:00:00 2001 From: Matysh Date: Wed, 12 Aug 2026 02:42:57 +0300 Subject: [PATCH] test: align beta.3 action smokes --- demo/smoke_controls.mjs | 7 ++++--- demo/smoke_light_default_tap.mjs | 7 ++++++- demo/smoke_tap_run.mjs | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/demo/smoke_controls.mjs b/demo/smoke_controls.mjs index a94b4d02..7d6f3f0c 100644 --- a/demo/smoke_controls.mjs +++ b/demo/smoke_controls.mjs @@ -19,7 +19,7 @@ const res = await page.evaluate(async () => { c._openMarkerDialog(); const room = c._spaceModel().rooms.find((r) => r.id && r.area); c._markerDialog = { ...c._markerDialog, name: 'Выключатель', binding: 'virtual', - room: c._space + '#' + room.area, tapAction: 'toggle', controls: lights, + room: c._space + '#' + room.area, tapAction: 'toggle', tapActionTouched: true, controls: lights, icon: 'mdi:light-switch', display: 'icon_ripple' }; await c._saveMarker(); await c.updateComplete; const dev = c._devices.find((d) => d.name === 'Выключатель'); @@ -105,8 +105,9 @@ const res = await page.evaluate(async () => { if (self) { await setSt({ [own]: 'off' }); c._clickDevice(new MouseEvent('click'), self); - out.selfControlUsesDirectToggle = JSON.stringify(calls.at(-1)) - === JSON.stringify(['homeassistant', 'toggle', own]); + const selfCall = calls.at(-1); + out.selfControlUsesDirectToggle = ['switch', 'homeassistant'].includes(selfCall?.[0]) + && selfCall?.[1] === 'turn_on' && selfCall?.[2] === own; c._openMarkerDialog(self); await c.updateComplete; out.selfControlAbsentFromDialog = c._markerDialog?.controls.length === 0; c._markerDialog = null; diff --git a/demo/smoke_light_default_tap.mjs b/demo/smoke_light_default_tap.mjs index 5352942a..7f401609 100644 --- a/demo/smoke_light_default_tap.mjs +++ b/demo/smoke_light_default_tap.mjs @@ -10,9 +10,14 @@ const res = await page.evaluate(async () => { // лампа (primary light) без явного действия → клик = toggle const lamp = c._devices.find((d) => d.primary?.startsWith('light.') && !d.tapAction); out.hasLamp = !!lamp; + const lampState = c.hass.states[lamp.primary]?.state; + const expectedService = lampState === 'off' ? 'turn_on' + : (lampState === 'unknown' || lampState === '' ? 'toggle' : 'turn_off'); c._infoCard = null; c._clickDevice(new MouseEvent('click'), lamp); - out.lampToggles = JSON.stringify(calls.at(-1)) === JSON.stringify(['homeassistant', 'toggle', lamp.primary]); + const lampCall = calls.at(-1); + out.lampToggles = ['light', 'homeassistant'].includes(lampCall?.[0]) + && lampCall?.[1] === expectedService && lampCall?.[2] === lamp.primary; // устройство с не-light primary (сенсор) → клик = инфо const sensorDev = c._devices.find((d) => d.primary?.startsWith('sensor.') && !d.tapAction); const n = calls.length; diff --git a/demo/smoke_tap_run.mjs b/demo/smoke_tap_run.mjs index 2bea4266..83f10b60 100644 --- a/demo/smoke_tap_run.mjs +++ b/demo/smoke_tap_run.mjs @@ -22,7 +22,7 @@ const out = await page.evaluate(async () => { const d = c._devices.find((x) => x.space === 'f1' && x.bindingKind === 'device'); c._setMode('devices'); await c.updateComplete; c._openMarkerDialog(d); await c.updateComplete; - c._markerDialog = { ...c._markerDialog, tapAction: 'run' }; await c.updateComplete; + c._markerDialog = { ...c._markerDialog, tapAction: 'run', tapActionTouched: true }; await c.updateComplete; // ВИДИМОСТЬ, не просто наличие в DOM: список — flex-item со скроллом и // однажды схлопнулся в полоску 1px при 26 кандидатах внутри (репорт // пользователя 2026-07-30, поймано только замером высоты)