mirror of
https://github.com/Matysh/houseplan-card
synced 2026-07-31 08:28:31 +00:00
fix+test v1.13.2: audit round 3
- 12-test buildDevices suite on a fake hass (curation, markers, groups, dedup, icon rules, lock override, device_class fallback, primary/LQI/temp) - t() substitutes all placeholder occurrences (pure subst() + regression test) - _saveConfigNow resyncs config on rev conflict before rethrowing - pointercancel clears the long-press timer (phantom info card on touch) - repairs.py: plan-file check re-runs after every config save - test build compiles devices.ts/types.ts; fix-test-build.mjs adds .js to ESM imports
This commit is contained in:
@@ -1,5 +1,25 @@
|
||||
# Changelog
|
||||
|
||||
## v1.13.2 — 2026-07-05 (audit round 3: fixes + buildDevices test suite)
|
||||
- **buildDevices finally has a direct unit-test suite** (12 tests on a fake hass):
|
||||
area filtering, curation incl. show-all, duplicate numbering, light-group folding
|
||||
and its `group_lights=false` inverse, marker claim/metadata/hidden/virtual/entity
|
||||
paths, custom icon rules + the deliberate lock override, device_class fallback,
|
||||
primary-entity priority, LQI/temperature extraction. Frontend tests: 28 → 41.
|
||||
- Fix: `t()` now substitutes **every** occurrence of a placeholder (extracted as the
|
||||
pure `subst()` helper with a regression test).
|
||||
- Fix: `_saveConfigNow` refreshes the local config on a rev conflict before
|
||||
rethrowing — a retry no longer hits the same conflict (the debounced path already
|
||||
did this; the immediate path did not).
|
||||
- Fix: `pointercancel` on a device icon clears the long-press timer — no phantom
|
||||
info card after an aborted touch gesture.
|
||||
- Repairs check moved to `repairs.py` and now **re-runs after every config save**,
|
||||
so a missing/restored plan file is reflected in the Repairs UI without a restart.
|
||||
- Documented the deliberate `mdi:lock` override in `devices.ts` (wins over custom
|
||||
rules — a mislabeled lock icon is safety-relevant confusion).
|
||||
- Test infra: `tsconfig.test.json` also compiles `devices.ts`/`types.ts`;
|
||||
`scripts/fix-test-build.mjs` appends `.js` to tsc's extensionless ESM imports.
|
||||
|
||||
## v1.13.1 — 2026-07-05 (distribution materials)
|
||||
- **Demo GIF** in the README — recorded on a fully synthetic demo home (no real
|
||||
floor plans): live states, tap-to-toggle, drag, zoom, info card, space tabs.
|
||||
|
||||
+5
-2
@@ -13,14 +13,14 @@
|
||||
|
||||
| Item | State |
|
||||
|---|---|
|
||||
| Version | **v1.13.1** everywhere (manifest, const.py, package.json, CARD_VERSION) |
|
||||
| Version | **v1.13.2** everywhere (manifest, const.py, package.json, CARD_VERSION) |
|
||||
| GitHub | https://github.com/Matysh/houseplan-card — branch `main`, releases v1.9.3…v1.11.2 |
|
||||
| CI | `.github/workflows/validate.yml` (hacs + hassfest + frontend + backend) — **fully green** since v1.11.1; `release.yml` auto-attaches the card bundle (needs `permissions: contents: write`, fixed) |
|
||||
| HACS | Works as custom repository (id 1290210112 on the home instance). **Inclusion PR: https://github.com/hacs/default/pull/8995** (queue ≈2 months as of 2026-07) |
|
||||
| Brands | Ships **inside the integration**: `custom_components/houseplan/brand/{icon,icon@2x,logo,logo@2x}.png` (HA ≥2026.3 local-brands mechanism). home-assistant/brands PR #10700 was auto-closed — that repo no longer accepts custom integrations |
|
||||
| Home instance | ha.jbstudio.pro (SSH port 323, key `ha_jb`), deployed v1.11.2, installed *via HACS* (custom repo) — updates flow through HACS now |
|
||||
| Localization | UI en/ru (`src/i18n.ts`), auto by `hass.locale` + `language` card option; codebase and docs are English-first (`README.ru.md` is the Russian copy) |
|
||||
| Tests | 28 frontend (node:test) + 10 pure backend (anywhere) + 12 HA-harness backend (CI only, py3.13; skipped locally — sandbox has py3.10) |
|
||||
| Tests | 41 frontend (node:test, incl. a 12-test buildDevices suite on a fake hass) + 10 pure backend (anywhere) + 12 HA-harness backend (CI only, py3.13; skipped locally — sandbox has py3.10) |
|
||||
|
||||
## Recent milestones (details in CHANGELOG.md)
|
||||
|
||||
@@ -40,6 +40,9 @@
|
||||
- **v1.13.1** — distribution: synthetic-home demo GIF in the README, issue templates,
|
||||
CONTRIBUTING.md, Discussions. Forum/Reddit drafts are in the user folder
|
||||
(`posts_drafts.md`) awaiting manual posting.
|
||||
- **v1.13.2** — audit round 3: buildDevices unit-test suite, multi-placeholder t(),
|
||||
conflict resync in _saveConfigNow, pointercancel long-press fix, repairs re-check
|
||||
on config save (repairs.py).
|
||||
|
||||
## Where things live
|
||||
|
||||
|
||||
Reference in New Issue
Block a user