From 71e5ffb2bda66bbab76dd77b9256b8d6cf423b1f Mon Sep 17 00:00:00 2001
From: Jan Bouwhuis <jbouwh@users.noreply.github.com>
Date: Wed, 10 Jul 2024 21:17:27 +0200
Subject: [PATCH] Add mqtt automation publish test with template rendering
 (#121695)

---
 tests/components/mqtt/test_init.py | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/tests/components/mqtt/test_init.py b/tests/components/mqtt/test_init.py
index 3aa378cb4d8..3fe211933bc 100644
--- a/tests/components/mqtt/test_init.py
+++ b/tests/components/mqtt/test_init.py
@@ -13,7 +13,7 @@ from freezegun.api import FrozenDateTimeFactory
 import pytest
 import voluptuous as vol
 
-from homeassistant.components import mqtt
+from homeassistant.components import automation, mqtt
 from homeassistant.components.mqtt import debug_info
 from homeassistant.components.mqtt.models import (
     MessageCallbackType,
@@ -415,6 +415,34 @@ async def test_publish_function_with_bad_encoding_conditions(
     )
 
 
+@pytest.mark.parametrize(
+    "hass_config",
+    [
+        {
+            automation.DOMAIN: {
+                "trigger": {"platform": "event", "event_type": "test_event"},
+                "action": {
+                    "service": "mqtt.publish",
+                    "data": {"topic": "test/{{ 4 + 4}}", "payload": "{{ 4 * 4}}"},
+                },
+            }
+        }
+    ],
+)
+async def test_service_call_with_templates_though_an_automation(
+    hass: HomeAssistant,
+    hass_config: ConfigType,
+    mqtt_mock_entry: MqttMockHAClientGenerator,
+) -> None:
+    """Test the service call with templated args through an automation."""
+    await async_setup_component(hass, automation.DOMAIN, hass_config)
+    mqtt_mock = await mqtt_mock_entry()
+    hass.bus.async_fire("test_event")
+    await hass.async_block_till_done(wait_background_tasks=True)
+
+    mqtt_mock.async_publish.assert_called_with("test/8", "16", 0, False)
+
+
 def test_validate_topic() -> None:
     """Test topic name/filter validation."""
     # Invalid UTF-8, must not contain U+D800 to U+DFFF.
-- 
GitLab