"""Fixtures for the trend component tests.""" from collections.abc import Awaitable, Callable from typing import Any import pytest from homeassistant.components.trend.const import DOMAIN from homeassistant.core import HomeAssistant from tests.common import MockConfigEntry ComponentSetup = Callable[[dict[str, Any]], Awaitable[None]] @pytest.fixture(name="config_entry") async def mock_config_entry(hass: HomeAssistant) -> MockConfigEntry: """Return a MockConfigEntry for testing.""" return MockConfigEntry( data={}, domain=DOMAIN, options={ "name": "My trend", "entity_id": "sensor.cpu_temp", "invert": False, "max_samples": 2.0, "min_gradient": 0.0, "sample_duration": 0.0, }, title="My trend", ) @pytest.fixture(name="setup_component") async def mock_setup_component( hass: HomeAssistant, config_entry: MockConfigEntry ) -> ComponentSetup: """Set up the trend component.""" async def _setup_func(component_params: dict[str, Any]) -> None: config_entry.add_to_hass(hass) hass.config_entries.async_update_entry( config_entry, options={ **config_entry.options, **component_params, "name": "test_trend_sensor", "entity_id": "sensor.test_state", }, title="test_trend_sensor", ) assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() return _setup_func