diff options
author | Kim Alvefur <zash@zash.se> | 2023-12-16 13:47:55 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2023-12-16 13:47:55 +0100 |
commit | 251f4d3c8a72494586887eb701f181fe0bc94f18 (patch) | |
tree | 2483066c1dd59d8d38b69c09aed98bd306270951 /spec/util_xtemplate_spec.lua | |
parent | d26ccd84004372051deeff7d68f2e9264f54055a (diff) | |
download | prosody-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")
Diffstat (limited to 'spec/util_xtemplate_spec.lua')
-rw-r--r-- | spec/util_xtemplate_spec.lua | 8 |
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) |