From 093563b0c945b936c4030a41d347890a3387622c Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Tue, 30 Jun 2026 13:34:06 +0000 Subject: [PATCH] =?UTF-8?q?Mapper=20falls=20back=20to=20legacy=20trickle?= =?UTF-8?q?=20vent=20label=20for=20pre-existing=20API=20responses=20?= =?UTF-8?q?=F0=9F=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- tests/domain/magicplan/test_mapper.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/domain/magicplan/test_mapper.py b/tests/domain/magicplan/test_mapper.py index 419a66fc8..d81a448cf 100644 --- a/tests/domain/magicplan/test_mapper.py +++ b/tests/domain/magicplan/test_mapper.py @@ -8,6 +8,7 @@ import domain.magicplan.api.response as api from domain.magicplan.api.response import MagicPlanPlan, Symbol, Vec3, WallItem from domain.magicplan.mapper import ( _map_window, # pyright: ignore[reportPrivateUsage] + _map_window_ventilation, # pyright: ignore[reportPrivateUsage] map_address, map_plan, ) @@ -229,3 +230,28 @@ def test_map_address_city_absent_is_omitted() -> None: def test_map_address_none_returns_none() -> None: assert map_address(None) is None + + +def _make_survey_field(label: str, value: str) -> api.SurveyField: + return api.SurveyField( + id="test", + type=5, + type_as_string="float", + is_required=False, + label=label, + value=api.FieldValue(index=-1, has_value=True, is_array=False, value=value), + ) + + +def test_trickle_vent_area_read_from_legacy_field_label() -> None: + # Arrange — old MagicPlan label, not yet renamed in the API response + fields = [_make_survey_field( + "Trickle Vent Effective Area (mm2) (No Code Then Width x Height)", "1700" + )] + + # Act + vent = _map_window_ventilation(fields) + + # Assert + assert vent is not None + assert vent.trickle_vent_area_mm2 == 1700