"""Test the Luftdaten component setup."""
from unittest.mock import patch

from homeassistant.components import luftdaten
from homeassistant.components.luftdaten.const import CONF_SENSOR_ID, DOMAIN
from homeassistant.const import CONF_SCAN_INTERVAL, CONF_SHOW_ON_MAP
from homeassistant.setup import async_setup_component


async def test_config_with_sensor_passed_to_config_entry(hass):
    """Test that configured options for a sensor are loaded."""
    conf = {
        CONF_SENSOR_ID: "12345abcde",
        CONF_SHOW_ON_MAP: False,
        CONF_SCAN_INTERVAL: 600,
    }

    with patch.object(
        hass.config_entries.flow, "async_init"
    ) as mock_config_entries, patch.object(
        luftdaten, "configured_sensors", return_value=[]
    ):
        assert await async_setup_component(hass, DOMAIN, conf) is True

    assert len(mock_config_entries.flow.mock_calls) == 0


async def test_config_already_registered_not_passed_to_config_entry(hass):
    """Test that an already registered sensor does not initiate an import."""
    conf = {CONF_SENSOR_ID: "12345abcde"}

    with patch.object(
        hass.config_entries.flow, "async_init"
    ) as mock_config_entries, patch.object(
        luftdaten, "configured_sensors", return_value=["12345abcde"]
    ):
        assert await async_setup_component(hass, DOMAIN, conf) is True

    assert len(mock_config_entries.flow.mock_calls) == 0