"""Test the Fjäråskupan config flow.""" from __future__ import annotations from unittest.mock import patch from bleak.backends.device import BLEDevice from pytest import fixture from homeassistant import config_entries, setup from homeassistant.components.fjaraskupan.const import DOMAIN from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import ( RESULT_TYPE_ABORT, RESULT_TYPE_CREATE_ENTRY, RESULT_TYPE_FORM, ) @fixture(name="mock_setup_entry", autouse=True) async def fixture_mock_setup_entry(hass): """Fixture for config entry.""" await setup.async_setup_component(hass, "persistent_notification", {}) with patch( "homeassistant.components.fjaraskupan.async_setup_entry", return_value=True ) as mock_setup_entry: yield mock_setup_entry async def test_configure(hass: HomeAssistant, mock_setup_entry) -> None: """Test we get the form.""" result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_USER} ) assert result["type"] == RESULT_TYPE_FORM result = await hass.config_entries.flow.async_configure(result["flow_id"], {}) assert result["type"] == RESULT_TYPE_CREATE_ENTRY assert result["title"] == "Fjäråskupan" assert result["data"] == {} await hass.async_block_till_done() assert len(mock_setup_entry.mock_calls) == 1 async def test_scan_no_devices(hass: HomeAssistant, scanner: list[BLEDevice]) -> None: """Test we get the form.""" scanner.clear() result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_USER} ) assert result["type"] == RESULT_TYPE_FORM result = await hass.config_entries.flow.async_configure(result["flow_id"], {}) assert result["type"] == RESULT_TYPE_ABORT assert result["reason"] == "no_devices_found"