"""The tests for the Ring button platform."""

import requests_mock

from homeassistant.const import Platform
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er

from .common import setup_platform


async def test_entity_registry(
    hass: HomeAssistant,
    requests_mock: requests_mock.Mocker,
    entity_registry: er.EntityRegistry,
) -> None:
    """Tests that the devices are registered in the entity registry."""
    await setup_platform(hass, Platform.BUTTON)

    entry = entity_registry.async_get("button.ingress_open_door")
    assert entry.unique_id == "185036587-open_door"


async def test_button_opens_door(
    hass: HomeAssistant, requests_mock: requests_mock.Mocker
) -> None:
    """Tests the door open button works correctly."""
    await setup_platform(hass, Platform.BUTTON)

    # Mocks the response for opening door
    mock = requests_mock.put(
        "https://api.ring.com/commands/v1/devices/185036587/device_rpc",
        status_code=200,
        text="{}",
    )

    await hass.services.async_call(
        "button", "press", {"entity_id": "button.ingress_open_door"}, blocking=True
    )

    await hass.async_block_till_done()
    assert mock.call_count == 1