async def test_ws_create(hass, hass_ws_client, storage_setup): """Test create WS.""" assert await storage_setup(items=[]) timer_id = "new_timer" timer_entity_id = f"{DOMAIN}.{timer_id}" ent_reg = er.async_get(hass) state = hass.states.get(timer_entity_id) assert state is None assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN, timer_id) is None client = await hass_ws_client(hass) await client.send_json({ "id": 6, "type": f"{DOMAIN}/create", CONF_NAME: "New Timer", CONF_DURATION: 42, }) resp = await client.receive_json() assert resp["success"] state = hass.states.get(timer_entity_id) assert state.state == STATUS_IDLE assert state.attributes[ATTR_DURATION] == _format_timedelta( cv.time_period(42)) assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN, timer_id) == timer_entity_id
async def test_update(hass, hass_ws_client, storage_setup): """Test updating timer entity.""" assert await storage_setup() timer_id = "from_storage" timer_entity_id = f"{DOMAIN}.{DOMAIN}_{timer_id}" ent_reg = er.async_get(hass) state = hass.states.get(timer_entity_id) assert state.attributes[ATTR_FRIENDLY_NAME] == "timer from storage" assert ent_reg.async_get_entity_id(DOMAIN, DOMAIN, timer_id) == timer_entity_id client = await hass_ws_client(hass) await client.send_json({ "id": 6, "type": f"{DOMAIN}/update", f"{DOMAIN}_id": f"{timer_id}", CONF_DURATION: 33, }) resp = await client.receive_json() assert resp["success"] state = hass.states.get(timer_entity_id) assert state.attributes[ATTR_DURATION] == _format_timedelta( cv.time_period(33))