diff --git a/homeassistant/components/qnap_qsw/config_flow.py b/homeassistant/components/qnap_qsw/config_flow.py index e9d11433021..bb42c9ea294 100644 --- a/homeassistant/components/qnap_qsw/config_flow.py +++ b/homeassistant/components/qnap_qsw/config_flow.py @@ -113,9 +113,10 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): except LoginError: errors[CONF_PASSWORD] = "invalid_auth" except QswError: - errors[CONF_URL] = "cannot_connect" + errors["base"] = "cannot_connect" else: title = f"QNAP {system_board.get_product()} {self._discovered_mac}" + user_input[CONF_URL] = self._discovered_url return self.async_create_entry(title=title, data=user_input) return self.async_show_form( diff --git a/homeassistant/components/qnap_qsw/strings.json b/homeassistant/components/qnap_qsw/strings.json index 351245a9591..ba0cb28ba77 100644 --- a/homeassistant/components/qnap_qsw/strings.json +++ b/homeassistant/components/qnap_qsw/strings.json @@ -9,6 +9,12 @@ "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]" }, "step": { + "discovered_connection": { + "data": { + "username": "[%key:common::config_flow::data::username%]", + "password": "[%key:common::config_flow::data::password%]" + } + }, "user": { "data": { "url": "[%key:common::config_flow::data::url%]", diff --git a/homeassistant/components/qnap_qsw/translations/en.json b/homeassistant/components/qnap_qsw/translations/en.json index b6f68f2f062..c75c2d76ac8 100644 --- a/homeassistant/components/qnap_qsw/translations/en.json +++ b/homeassistant/components/qnap_qsw/translations/en.json @@ -9,6 +9,12 @@ "invalid_auth": "Invalid authentication" }, "step": { + "discovered_connection": { + "data": { + "password": "Password", + "username": "Username" + } + }, "user": { "data": { "password": "Password", diff --git a/tests/components/qnap_qsw/test_config_flow.py b/tests/components/qnap_qsw/test_config_flow.py index 0b7072dd602..02f873c6a4a 100644 --- a/tests/components/qnap_qsw/test_config_flow.py +++ b/tests/components/qnap_qsw/test_config_flow.py @@ -24,7 +24,7 @@ DHCP_SERVICE_INFO = dhcp.DhcpServiceInfo( ) TEST_PASSWORD = "test-password" -TEST_URL = "test-url" +TEST_URL = f"http://{DHCP_SERVICE_INFO.ip}" TEST_USERNAME = "test-username" @@ -187,6 +187,7 @@ async def test_dhcp_flow(hass: HomeAssistant) -> None: assert result2["data"] == { CONF_USERNAME: TEST_USERNAME, CONF_PASSWORD: TEST_PASSWORD, + CONF_URL: TEST_URL, } assert len(mock_setup_entry.mock_calls) == 1 @@ -237,7 +238,7 @@ async def test_dhcp_connection_error(hass: HomeAssistant): }, ) - assert result["errors"] == {CONF_URL: "cannot_connect"} + assert result["errors"] == {"base": "cannot_connect"} async def test_dhcp_login_error(hass: HomeAssistant):