diff --git a/tests/backend/app/modelling/test_property_filters.py b/tests/backend/app/modelling/test_property_filters.py index 223696dd5..7f4a0f255 100644 --- a/tests/backend/app/modelling/test_property_filters.py +++ b/tests/backend/app/modelling/test_property_filters.py @@ -258,6 +258,35 @@ def test_unknown_is_a_selectable_property_type_bucket(db_engine: Engine) -> None assert [p.property_id for p in resolved] == [unknowable] +def test_built_form_filter_resolves_with_the_same_precedence( + db_engine: Engine, +) -> None: + # arrange — both lodged as code 4 (Mid-Terrace); one overridden to Detached + with Session(db_engine) as session: + overridden = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=overridden, built_form="4") + _seed_override( + session, + property_id=overridden, + component="built_form_type", + value="Detached", + ) + mid_terrace = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=mid_terrace, built_form="4") + semi = _seed_property(session, portfolio_id=814) + _seed_epc(session, property_id=semi, built_form="2") + + # act + resolved = resolve_filtered_property_ids( + session, + portfolio_id=814, + filters=PropertyGroupFilters(built_forms=["Detached", "Mid-Terrace"]), + ) + + # assert — the override wins for one; the code maps for the other + assert [p.property_id for p in resolved] == [overridden, mid_terrace] + + def test_postcode_filter_matches_exactly(db_engine: Engine) -> None: # arrange with Session(db_engine) as session: