util.stanza: Cover :find method in tests
authorKim Alvefur <zash@zash.se>
Fri, 31 Dec 2021 14:14:03 +0100
changeset 12145 3ac801630b4b
parent 12144 1a4c61253932
child 12146 87532eebd0b8
util.stanza: Cover :find method in tests This method is a bit complex so good to have some test coverage
spec/util_stanza_spec.lua
--- a/spec/util_stanza_spec.lua	Fri Dec 31 14:01:12 2021 +0100
+++ b/spec/util_stanza_spec.lua	Fri Dec 31 14:14:03 2021 +0100
@@ -552,4 +552,16 @@
 		assert.equal("<foo>\n\t\t<bar>\n\t\t\t<baz/>\n\t\t\t<cow>moo</cow>\n\t\t</bar>\n\t</foo>", tostring(s:indent(2, "\t")));
 	end);
 
+	describe("find", function()
+		it("works", function()
+			local s = st.stanza("root", { attr = "value" }):tag("child",
+				{ xmlns = "urn:example:not:same"; childattr = "thisvalue" }):text_tag("nested", "text"):reset();
+			assert.equal("value", s:find("@attr"), "finds attr")
+			assert.equal(s:get_child("child", "urn:example:not:same"), s:find("{urn:example:not:same}child"),
+				"equivalent to get_child")
+			assert.equal("thisvalue", s:find("{urn:example:not:same}child@childattr"), "finds child attr")
+			assert.equal("text", s:find("{urn:example:not:same}child/nested#"), "finds nested text")
+			assert.is_nil(s:find("child"), "respects namespaces")
+		end);
+	end);
 end);