diff --git a/tests/backend/app/modelling/test_property_filters.py b/tests/backend/app/modelling/test_property_filters.py index 7f4a0f255..b7d029368 100644 --- a/tests/backend/app/modelling/test_property_filters.py +++ b/tests/backend/app/modelling/test_property_filters.py @@ -287,6 +287,30 @@ def test_built_form_filter_resolves_with_the_same_precedence( assert [p.property_id for p in resolved] == [overridden, mid_terrace] +def test_filters_combine_with_and(db_engine: Engine) -> None: + # arrange — right postcode + right type, right postcode + wrong type, + # wrong postcode + right type + with Session(db_engine) as session: + match = _seed_property(session, portfolio_id=814, postcode="B93 8SU") + _seed_epc(session, property_id=match, property_type="House") + wrong_type = _seed_property(session, portfolio_id=814, postcode="B93 8SU") + _seed_epc(session, property_id=wrong_type, property_type="Flat") + wrong_postcode = _seed_property(session, portfolio_id=814, postcode="M20 4TF") + _seed_epc(session, property_id=wrong_postcode, property_type="House") + + # act + resolved = resolve_filtered_property_ids( + session, + portfolio_id=814, + filters=PropertyGroupFilters( + postcodes=["B93 8SU"], property_types=["House"] + ), + ) + + # assert + assert [p.property_id for p in resolved] == [match] + + def test_postcode_filter_matches_exactly(db_engine: Engine) -> None: # arrange with Session(db_engine) as session: