from db.shopping_facet_catalog import (
    KITCHEN_CABINET_SHOPPING_OPTIONS,
    cabinet_type_filter_aliases,
    canonical_cabinet_type_label,
    compact_filter_value,
    magento_option_label,
)


def test_compact_filter_value_kitchen_cabinet_slugs():
    assert compact_filter_value("Base Cabinets") == "basecabinets"
    assert compact_filter_value("Wall Cabinets") == "wallcabinets"
    assert compact_filter_value("Panels and Fillers") == "panelsandfillers"
    assert compact_filter_value("Mouldings") == "mouldings"
    assert compact_filter_value("Accessories") == "accessories"


def test_magento_option_label_maps_display_and_short_forms():
    assert magento_option_label("Base") == "base cabinets"
    assert magento_option_label("Base Cabinets") == "base cabinets"
    assert magento_option_label("basecabinets") == "base cabinets"
    assert magento_option_label("Wall") == "wall cabinets"
    assert magento_option_label("accessories") == "accessories"


def test_canonical_cabinet_type_label():
    assert canonical_cabinet_type_label("base cabinets") == "Base Cabinets"
    assert canonical_cabinet_type_label("basecabinets") == "Base Cabinets"
    assert canonical_cabinet_type_label("unknown") is None


def test_cabinet_type_filter_aliases_cover_url_slugs():
    aliases = cabinet_type_filter_aliases()
    assert "base cabinets" in aliases
    assert "basecabinets" in aliases["base cabinets"]
    assert len(KITCHEN_CABINET_SHOPPING_OPTIONS) == 5
