aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2023-12-16 13:47:55 +0100
committerKim Alvefur <zash@zash.se>2023-12-16 13:47:55 +0100
commit251f4d3c8a72494586887eb701f181fe0bc94f18 (patch)
tree2483066c1dd59d8d38b69c09aed98bd306270951
parentd26ccd84004372051deeff7d68f2e9264f54055a (diff)
downloadprosody-251f4d3c8a72494586887eb701f181fe0bc94f18.tar.gz
prosody-251f4d3c8a72494586887eb701f181fe0bc94f18.zip
util.xtemplate: Test the each template function
It iterates over childtags, so a template like {foo|each{...}} would be equivalent to root:childtags("foo"), while a deeper query needs the bit that becomes arguments to :childtags as an argument to each, e.g. {foo/bar|each(baz)} would behave like root:get_child("foo"):get_child("bar"):childtags("baz")
-rw-r--r--spec/util_xtemplate_spec.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/spec/util_xtemplate_spec.lua b/spec/util_xtemplate_spec.lua
index 97ab415c..4561378e 100644
--- a/spec/util_xtemplate_spec.lua
+++ b/spec/util_xtemplate_spec.lua
@@ -31,5 +31,13 @@ describe("util.xtemplate", function ()
assert.same(" Hello", xtemplate.render(" {greeting-} ", st.stanza("root"):text_tag("greeting", "Hello")))
assert.same("Hello", xtemplate.render(" {-greeting-} ", st.stanza("root"):text_tag("greeting", "Hello")))
end)
+ describe("each", function ()
+ it("makes sense", function ()
+ local x = st.stanza("root"):tag("foo"):tag("bar")
+ for i = 1, 5 do x:text_tag("i", tostring(i)); end
+ x:reset();
+ assert.same("12345", xtemplate.render("{foo/bar|each(i){{#}}}", x));
+ end)
+ end)
end)
end)