diff --git a/homeassistant/config_entries.py b/homeassistant/config_entries.py index f74acede5072..c105be42ba3e 100644 --- a/homeassistant/config_entries.py +++ b/homeassistant/config_entries.py @@ -1012,6 +1012,13 @@ class ConfigFlow(data_entry_flow.FlowHandler): return None + @callback + def _set_confirm_only( + self, + ) -> None: + """Mark the config flow as only needing user confirmation to finish flow.""" + self.context["confirm_only"] = True + @callback def _async_current_entries(self, include_ignore: bool = False) -> List[ConfigEntry]: """Return current entries. diff --git a/homeassistant/helpers/config_entry_flow.py b/homeassistant/helpers/config_entry_flow.py index 889981537c62..69248186b53a 100644 --- a/homeassistant/helpers/config_entry_flow.py +++ b/homeassistant/helpers/config_entry_flow.py @@ -42,6 +42,7 @@ class DiscoveryFlowHandler(config_entries.ConfigFlow): ) -> Dict[str, Any]: """Confirm setup.""" if user_input is None: + self._set_confirm_only() return self.async_show_form(step_id="confirm") if self.source == config_entries.SOURCE_USER: diff --git a/tests/helpers/test_config_entry_flow.py b/tests/helpers/test_config_entry_flow.py index 874fd5df29ad..b3233556957b 100644 --- a/tests/helpers/test_config_entry_flow.py +++ b/tests/helpers/test_config_entry_flow.py @@ -78,6 +78,15 @@ async def test_user_has_confirmation(hass, discovery_flow_conf): assert result["type"] == data_entry_flow.RESULT_TYPE_FORM assert result["step_id"] == "confirm" + progress = hass.config_entries.flow.async_progress() + assert len(progress) == 1 + assert progress[0]["flow_id"] == result["flow_id"] + assert progress[0]["context"] == { + "confirm_only": True, + "source": config_entries.SOURCE_USER, + "unique_id": "test", + } + result = await hass.config_entries.flow.async_configure(result["flow_id"], {}) assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY