"""Test Workday component setup process.""" from __future__ import annotations from datetime import datetime from freezegun.api import FrozenDateTimeFactory from homeassistant.config_entries import ConfigEntryState from homeassistant.core import HomeAssistant from homeassistant.util.dt import UTC from . import TEST_CONFIG_EXAMPLE_1, TEST_CONFIG_WITH_PROVINCE, init_integration async def test_load_unload_entry(hass: HomeAssistant) -> None: """Test load and unload entry.""" entry = await init_integration(hass, TEST_CONFIG_EXAMPLE_1) state = hass.states.get("binary_sensor.workday_sensor") assert state await hass.config_entries.async_remove(entry.entry_id) await hass.async_block_till_done() state = hass.states.get("binary_sensor.workday_sensor") assert not state async def test_update_options( hass: HomeAssistant, freezer: FrozenDateTimeFactory, ) -> None: """Test options update and config entry is reloaded.""" freezer.move_to(datetime(2023, 4, 12, 12, tzinfo=UTC)) # Monday entry = await init_integration(hass, TEST_CONFIG_WITH_PROVINCE) assert entry.state is ConfigEntryState.LOADED assert entry.update_listeners is not None state = hass.states.get("binary_sensor.workday_sensor") assert state.state == "on" new_options = TEST_CONFIG_WITH_PROVINCE.copy() new_options["add_holidays"] = ["2023-04-12"] hass.config_entries.async_update_entry(entry, options=new_options) await hass.async_block_till_done() entry_check = hass.config_entries.async_get_entry("1") assert entry_check.state is ConfigEntryState.LOADED state = hass.states.get("binary_sensor.workday_sensor") assert state.state == "off"