diff --git a/supervisor/discovery/services/esphome.py b/supervisor/discovery/services/esphome.py new file mode 100644 index 000000000..f7693e073 --- /dev/null +++ b/supervisor/discovery/services/esphome.py @@ -0,0 +1,9 @@ +"""Discovery service for the ESPHome Dashboard.""" +import voluptuous as vol + +from ...validate import network_port +from ..const import ATTR_HOST, ATTR_PORT + +SCHEMA = vol.Schema( + {vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port} +) diff --git a/tests/discovery/test_esphome.py b/tests/discovery/test_esphome.py new file mode 100644 index 000000000..d7bf2eaab --- /dev/null +++ b/tests/discovery/test_esphome.py @@ -0,0 +1,25 @@ +"""Test ESPHome Dashboard discovery.""" + +import pytest +import voluptuous as vol + +from supervisor.discovery.validate import valid_discovery_config + + +def test_good_config(): + """Test good ESPHome config.""" + + valid_discovery_config("esphome", {"host": "test", "port": 6052}) + + +def test_bad_config(): + """Test bad ESPHome config.""" + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"host": "test"}) + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"port": 6052}) + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"port": -1})