diff --git a/tests/conftest.py b/tests/conftest.py index ad8a4ea..386f7c7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -96,13 +96,8 @@ class _ConfigFlowBase: return {"type": "abort", "reason": reason} def async_create_entry(self, *, title, data, **kwargs): - result = {"type": "create_entry", "title": title, "data": data} - hass = getattr(self, "hass", None) - manager = getattr(hass, "config_entries", None) if hass is not None else None - add = getattr(manager, "async_add", None) - if add is not None: - add(SimpleNamespace(domain=self._domain, title=title, data=data)) - return result + """Return the flow result only; the flow manager persists the entry.""" + return {"type": "create_entry", "title": title, "data": data} async def async_set_unique_id(self, unique_id, raise_on_progress=True): self.context["unique_id"] = unique_id diff --git a/tests/test_config_flow.py b/tests/test_config_flow.py index 4087336..b744bf4 100644 --- a/tests/test_config_flow.py +++ b/tests/test_config_flow.py @@ -24,18 +24,19 @@ async def test_flow_shows_form_initially(hass, make_flow) -> None: async def test_flow_creates_entry_on_submit(hass, make_flow) -> None: - """Submitting the user step creates a config entry on the fixture's manager.""" + """Submitting the user step returns a create-entry result with the payload. + + Real HA's ConfigFlow.async_create_entry only returns the flow result; the + flow manager persists the entry afterward. The manager surface therefore + stays empty here — persistence is the manager's job, not the flow's. + """ flow = make_flow(hass) assert hass.config_entries.async_entries(DOMAIN) == [] result = await flow.async_step_user({}) assert result["type"] == "create_entry" assert result["title"] == "NestQuest" assert result["data"] == {} - created = hass.config_entries.async_entries(DOMAIN) - assert len(created) == 1 - assert created[0].domain == DOMAIN - assert created[0].title == "NestQuest" - assert created[0].data == {} + assert hass.config_entries.async_entries(DOMAIN) == [] async def test_second_flow_aborts_single_instance( @@ -48,6 +49,7 @@ async def test_second_flow_aborts_single_instance( result = await flow.async_step_user(None) assert result["type"] == "abort" assert result["reason"] == "single_instance_allowed" + assert hass.config_entries.async_entries(DOMAIN) == [existing] async def test_flow_aborts_when_in_progress(hass, make_flow) -> None: