diff --git a/tests/components/template/common-base.yaml b/tests/components/template/common-base.yaml index b873af5207..7d2cb19077 100644 --- a/tests/components/template/common-base.yaml +++ b/tests/components/template/common-base.yaml @@ -9,6 +9,27 @@ esphome: id: template_sens state: !lambda "return 42.0;" + # Test C++ API: set_template() with stateless lambda (no captures) + - lambda: |- + id(template_sens).set_template([]() -> esphome::optional { + return 123.0f; + }); + + # Test C++ API: set_template() with stateful lambda (with captures) + # This is the regression test for issue #11555 + - lambda: |- + float captured_value = 456.0f; + id(template_sens).set_template([captured_value]() -> esphome::optional { + return captured_value; + }); + + # Test C++ API: set_template() with more complex capture + - lambda: |- + auto sensor_id = id(template_sens); + id(template_number).set_template([sensor_id]() -> esphome::optional { + return sensor_id->state * 2.0f; + }); + - datetime.date.set: id: test_date date: @@ -215,6 +236,7 @@ cover: number: - platform: template + id: template_number name: "Template number" optimistic: true min_value: 0