diff --git a/homeassistant/components/thread/config_flow.py b/homeassistant/components/thread/config_flow.py index c6f151b8e63..070378b3429 100644 --- a/homeassistant/components/thread/config_flow.py +++ b/homeassistant/components/thread/config_flow.py @@ -13,16 +13,23 @@ class ThreadConfigFlow(ConfigFlow, domain=DOMAIN): VERSION = 1 - async def async_step_zeroconf( - self, discovery_info: zeroconf.ZeroconfServiceInfo - ) -> FlowResult: - """Set up because the user has border routers.""" - await self._async_handle_discovery_without_unique_id() - return self.async_create_entry(title="Thread", data={}) - async def async_step_import( self, import_data: dict[str, str] | None = None ) -> FlowResult: """Set up by import from async_setup.""" await self._async_handle_discovery_without_unique_id() return self.async_create_entry(title="Thread", data={}) + + async def async_step_user( + self, user_input: dict[str, str] | None = None + ) -> FlowResult: + """Set up by import from async_setup.""" + await self._async_handle_discovery_without_unique_id() + return self.async_create_entry(title="Thread", data={}) + + async def async_step_zeroconf( + self, discovery_info: zeroconf.ZeroconfServiceInfo + ) -> FlowResult: + """Set up because the user has border routers.""" + await self._async_handle_discovery_without_unique_id() + return self.async_create_entry(title="Thread", data={}) diff --git a/tests/components/thread/test_config_flow.py b/tests/components/thread/test_config_flow.py index 5f19f233e3f..a514760212b 100644 --- a/tests/components/thread/test_config_flow.py +++ b/tests/components/thread/test_config_flow.py @@ -78,6 +78,29 @@ async def test_import_then_zeroconf(hass: HomeAssistant) -> None: assert len(mock_setup_entry.mock_calls) == 0 +async def test_user(hass: HomeAssistant) -> None: + """Test the user flow.""" + with patch( + "homeassistant.components.thread.async_setup_entry", + return_value=True, + ) as mock_setup_entry: + result = await hass.config_entries.flow.async_init( + thread.DOMAIN, context={"source": "user"} + ) + + assert result["type"] == FlowResultType.CREATE_ENTRY + assert result["title"] == "Thread" + assert result["data"] == {} + assert result["options"] == {} + assert len(mock_setup_entry.mock_calls) == 1 + + config_entry = hass.config_entries.async_entries(thread.DOMAIN)[0] + assert config_entry.data == {} + assert config_entry.options == {} + assert config_entry.title == "Thread" + assert config_entry.unique_id is None + + async def test_zeroconf(hass: HomeAssistant) -> None: """Test the zeroconf flow.""" with patch(