diff --git a/homeassistant/components/roborock/coordinator.py b/homeassistant/components/roborock/coordinator.py index fe592074f71..23267a3aa2d 100644 --- a/homeassistant/components/roborock/coordinator.py +++ b/homeassistant/components/roborock/coordinator.py @@ -133,7 +133,9 @@ class RoborockDataUpdateCoordinator(DataUpdateCoordinator[DeviceProp]): if maps and maps.map_info: for roborock_map in maps.map_info: self.maps[roborock_map.mapFlag] = RoborockMapInfo( - flag=roborock_map.mapFlag, name=roborock_map.name, rooms={} + flag=roborock_map.mapFlag, + name=roborock_map.name or f"Map {roborock_map.mapFlag}", + rooms={}, ) async def get_rooms(self) -> None: diff --git a/tests/components/roborock/test_select.py b/tests/components/roborock/test_select.py index 784150e24c7..4859af0f790 100644 --- a/tests/components/roborock/test_select.py +++ b/tests/components/roborock/test_select.py @@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant from homeassistant.exceptions import HomeAssistantError from homeassistant.setup import async_setup_component -from .mock_data import PROP +from .mock_data import MULTI_MAP_LIST, PROP from tests.common import MockConfigEntry @@ -86,3 +86,33 @@ async def test_none_map_select( await async_setup_component(hass, DOMAIN, {}) select_entity = hass.states.get("select.roborock_s7_maxv_selected_map") assert select_entity.state == STATE_UNKNOWN + + +async def test_selected_map_name( + hass: HomeAssistant, + bypass_api_fixture, + mock_roborock_entry: MockConfigEntry, +) -> None: + """Test that the selected map is set to the correct map name.""" + await async_setup_component(hass, DOMAIN, {}) + select_entity = hass.states.get("select.roborock_s7_maxv_selected_map") + assert select_entity.state == "Upstairs" + + +async def test_selected_map_without_name( + hass: HomeAssistant, + bypass_api_fixture_v1_only, + mock_roborock_entry: MockConfigEntry, +) -> None: + """Test that maps without a name are given a placeholder name.""" + map_list = copy.deepcopy(MULTI_MAP_LIST) + map_list.map_info[0].name = "" + with patch( + "homeassistant.components.roborock.coordinator.RoborockLocalClientV1.get_multi_maps_list", + return_value=map_list, + ): + await async_setup_component(hass, DOMAIN, {}) + + select_entity = hass.states.get("select.roborock_s7_maxv_selected_map") + assert select_entity + assert select_entity.state == "Map 0"