Add unit-tests for #505

This commit is contained in:
Markus Ebner 2025-07-03 21:08:48 +02:00
parent 19c685b51a
commit 2bd436417a
No known key found for this signature in database
GPG Key ID: 2F4B02774683BA74

View File

@ -146,6 +146,59 @@ nested
assert_eq!(CallerEmpty.render().unwrap(), "\nnested\n\n"); assert_eq!(CallerEmpty.render().unwrap(), "\nnested\n\n");
} }
#[test]
fn test_nested_caller_aliasing1() {
#[derive(Template)]
#[template(
source = r#"
{%- macro inner() -%}
inner before|{{- caller(1) -}}|inner after
{%- endmacro -%}
{%- macro outer() -%}
outer before|
{%- set caller_ = caller -%}
{%- call(c) inner() -%}
{{c}}
{{- caller_(3, 4) -}}
{%- endcall -%}
|outer after
{%- endmacro -%}
{%- call(a, b) outer() -%}
content{{a}}-{{b}}
{%- endcall -%}
"#,
ext = "html"
)]
struct NestedCallerAliasing;
assert_eq!(
NestedCallerAliasing.render().unwrap(),
"outer before|inner before|1content3-4|inner after|outer after"
);
}
#[test]
fn test_nested_caller_aliasing2() {
#[derive(Template)]
#[template(
source = r#"
{%- macro layer0() -%}A{{ caller() }}a{%- endmacro -%}
{%- macro layer1() -%}B
{%- set caller_layer1 = caller -%}
{%- call layer0() -%}{{ caller_layer1() }}{%- endcall -%}
b{%- endmacro -%}
{%- macro layer2() -%}C
{%- set caller_layer2 = caller -%}
{%- call layer1() -%}{{ caller_layer2() }}{%- endcall -%}
c{%- endmacro -%}
{%- call layer2() -%}_CONTENT_{%- endcall -%}
"#,
ext = "html"
)]
struct NestedCallerAliasing;
assert_eq!(NestedCallerAliasing.render().unwrap(), "CBA_CONTENT_abc");
}
#[test] #[test]
fn test_caller_struct() { fn test_caller_struct() {
struct TestInput<'a> { struct TestInput<'a> {