fix(2.5D): preserve geometry on settings toggle
Проверка (CI) / Классификация изменённых файлов (push) Successful in 3m7s
Проверка (CI) / Предполёт: документация, провенанс, процесс (push) Failing after 6m52s
Проверка (CI) / Мутанты по диффу (1/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (2/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (3/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (4/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (5/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / Мутанты по диффу (6/6): затронутые свидетели краснеют (push) Skipped
Проверка (CI) / HACS: валидация репозитория (push) Failing after 29s
Проверка (CI) / Переиспользование: это дерево уже проверено (push) Successful in 57s
Проверка (CI) / Hassfest: манифест интеграции (push) Failing after 16s
Проверка (CI) / Фронтенд: типы, юниты, мутанты, синхрон бандла (push) Failing after 1m25s
Проверка (CI) / Смоки в браузере (шард 1 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 2 из 3) (push) Skipped
Проверка (CI) / Смоки в браузере (шард 3 из 3) (push) Skipped
Проверка (CI) / Смоки: все шарды зелёные (push) Skipped
Проверка (CI) / Golden-кадры против принятых эталонов (push) Skipped
Проверка (CI) / Перф-смок: бюджет времени кадра (push) Skipped
Проверка (CI) / Геометрия: TS/Python parity исполнена (push) Failing after 1m32s
Проверка (CI) / Бэкенд: pytest в Home Assistant (push) Failing after 5m6s
Проверка (CI) / Доказательство выполненных проверок (push) Failing after 18s

Issue: #649
User-Visible: no
This commit is contained in:
Sergey Matyunin
2026-09-25 23:33:07 +03:00
parent 8703727951
commit ec2b8c1522
74 changed files with 709 additions and 681 deletions
+9
View File
@@ -5,6 +5,7 @@ import {
createConfigAdoption,
adoptAuthoritativeGated,
adoptStructuralResponses,
preservesSpaceGeometry,
} from '../test-build/config-adoption.js';
import { contentFingerprint } from '../test-build/visual-continuity.js';
import { virtualLightSnapshot } from '../test-build/virtual-light-state.js';
@@ -18,6 +19,14 @@ import { virtualLightSnapshot } from '../test-build/virtual-light-state.js';
const cfg = (title, extra = {}) => ({ spaces: [{ id: 'f1', title }], settings: {}, ...extra });
const cloneOf = (value) => JSON.parse(JSON.stringify(value));
test('#649 settings-only replacement preserves only the identical spaces snapshot', () => {
const spaces = [{ id: 'f1', title: 'One' }];
const before = { spaces, markers: [], settings: {} };
assert.equal(preservesSpaceGeometry(before, { ...before, settings: { volumetric_view: true } }), true);
assert.equal(preservesSpaceGeometry(before, { ...before, spaces: cloneOf(spaces) }), false);
assert.equal(preservesSpaceGeometry(null, before), false);
});
/** A host stub recording every side effect the adoption may trigger, in order. */
function hostStub(adoption, overrides = {}) {
const calls = [];