diff --git a/demo/smoke_binding_picker.mjs b/demo/smoke_binding_picker.mjs index 158d2465..eebed628 100644 --- a/demo/smoke_binding_picker.mjs +++ b/demo/smoke_binding_picker.mjs @@ -12,7 +12,7 @@ const out = {}; Object.assign(out, await page.evaluate(async () => { const o = {}; const c = window.__card; - const nativeConfirm = window.confirm; + const confirmDanger = c._confirmDanger; // Пикер читает `showEntities` и `bindingFilter` из открытого диалога, поэтому // спрашивать его при закрытом бессмысленно: отдельные сущности устройств не @@ -30,10 +30,10 @@ Object.assign(out, await page.evaluate(async () => { const remove = async (device) => { c._openMarkerDialog(device); await c.updateComplete; - window.confirm = () => true; + c._confirmDanger = async () => true; await c._deleteMarker(); await c.updateComplete; - window.confirm = nativeConfirm; + c._confirmDanger = confirmDanger; }; const markers = () => c._serverCfg.markers || []; const tombstones = () => markers().filter((m) => m.removed === true); diff --git a/demo/smoke_hidden_flag.mjs b/demo/smoke_hidden_flag.mjs index 909e6612..9e4a35e5 100644 --- a/demo/smoke_hidden_flag.mjs +++ b/demo/smoke_hidden_flag.mjs @@ -79,10 +79,10 @@ Object.assign(out, await page.evaluate(async () => { const virtualB = c._devices.find((x) => x.virtual && x.name === 'delete-one-b'); c._openMarkerDialog(virtualA); await c.updateComplete; o.deleteForVirtual = !!sr().querySelector('hp-dialog .btn.danger'); - const savedConfirm = window.confirm; - window.confirm = () => true; + const savedConfirmDanger = c._confirmDanger; + c._confirmDanger = async () => true; await c._deleteMarker(); await c.updateComplete; - window.confirm = savedConfirm; + c._confirmDanger = savedConfirmDanger; o.deleteOnlySelectedVirtual = !!virtualA && !!virtualB && !(c._serverCfg.markers || []).some((m) => m.id === virtualA.id) && (c._serverCfg.markers || []).some((m) => m.id === virtualB.id); @@ -93,9 +93,9 @@ Object.assign(out, await page.evaluate(async () => { const oldPos = { s: readd.space, x: 0.913, y: 0.917 }; c._layout = { ...c._layout, [readd.id]: oldPos }; c._openMarkerDialog(readd); await c.updateComplete; - window.confirm = () => true; + c._confirmDanger = async () => true; await c._deleteMarker(); await c.updateComplete; - window.confirm = savedConfirm; + c._confirmDanger = savedConfirmDanger; c._openMarkerDialog(); await c.updateComplete; c._markerDialog = { ...c._markerDialog, diff --git a/demo/smoke_optional_space_model.mjs b/demo/smoke_optional_space_model.mjs index 55670b1a..07d83591 100644 --- a/demo/smoke_optional_space_model.mjs +++ b/demo/smoke_optional_space_model.mjs @@ -87,12 +87,12 @@ const result = await page.evaluate(async () => { card._pointers.set(113, { x: 10, y: 10 }); card._drag = { id: 'stale-device', sx: 0, sy: 0, ox: 0, oy: 0, moved: true }; card._saveConfigDebounced(); - const confirmBefore = window.confirm; - window.confirm = () => true; + const confirmBefore = card._confirmDanger; + card._confirmDanger = async () => true; try { await card._deleteSpace(); } finally { - window.confirm = confirmBefore; + card._confirmDanger = confirmBefore; } await settle(); diff --git a/demo/smoke_orphan_space_references.mjs b/demo/smoke_orphan_space_references.mjs index e31e12a4..9e48f631 100644 --- a/demo/smoke_orphan_space_references.mjs +++ b/demo/smoke_orphan_space_references.mjs @@ -172,19 +172,19 @@ const out = await page.evaluate(async () => { && card._layout['removed-marker'].s === 'gone' && !card.renderRoot.querySelector('.dev[data-id="orphan"]'); - let nativeConfirmCalls = 0; - const oldConfirm = window.confirm; - window.confirm = () => { nativeConfirmCalls++; return true; }; + let dangerConfirmCalls = 0; + const oldConfirmDanger = card._confirmDanger; + card._confirmDanger = async () => { dangerConfirmCalls++; return true; }; card._openSpaceDialog('edit', 'home'); await card.updateComplete; await card._deleteSpace(); await card.updateComplete; const blocker = card.renderRoot.querySelector('hp-dialog [role="alert"]')?.textContent || ''; - result.deleteExplainsBlockerWithoutConfirmOrWrite = nativeConfirmCalls === 0 + result.deleteExplainsBlockerWithoutConfirmOrWrite = dangerConfirmCalls === 0 && blocker.includes('still used by 1 device') && !calls.includes('houseplan/space/delete') && card._spaceDialog?.spaceId === 'home'; - window.confirm = oldConfirm; + card._confirmDanger = oldConfirmDanger; card._spaceDialog = null; await card.updateComplete; diff --git a/demo/smoke_registryless_opening.mjs b/demo/smoke_registryless_opening.mjs index 0d08747c..87906a80 100644 --- a/demo/smoke_registryless_opening.mjs +++ b/demo/smoke_registryless_opening.mjs @@ -86,8 +86,10 @@ const out = await page.evaluate(async () => { && root().querySelectorAll('.oprow').length === 2 && root().querySelectorAll('.lockact').length === 1; - window.confirm = () => true; - card._lockAction(lockId, 'unlock'); + const confirmDanger = card._confirmDanger; + card._confirmDanger = async () => true; + await card._lockAction(lockId, 'unlock'); + card._confirmDanger = confirmDanger; result.explicitInfoActionStillWorks = serviceCalls.at(-1)?.domain === 'lock' && serviceCalls.at(-1)?.service === 'unlock' && serviceCalls.at(-1)?.entityId === lockId;