Comparison

spec/util_stanza_spec.lua @ 12139:7d6497294d92

util.stanza: Increase test coverage to cover validation errors
author Kim Alvefur <zash@zash.se>
date Fri, 31 Dec 2021 14:00:28 +0100
parent 11786:39164ea2ab9e
child 12141:3ac801630b4b
comparison
equal deleted inserted replaced
12138:644ca3583837 12139:7d6497294d92
83 local s_control = st.stanza("foo"); 83 local s_control = st.stanza("foo");
84 assert.same(st.stanza("foo"):text(), s_control); 84 assert.same(st.stanza("foo"):text(), s_control);
85 assert.same(st.stanza("foo"):text(nil), s_control); 85 assert.same(st.stanza("foo"):text(nil), s_control);
86 assert.same(st.stanza("foo"):text(""), s_control); 86 assert.same(st.stanza("foo"):text(""), s_control);
87 end); 87 end);
88 it("validates names", function ()
89 assert.has_error_match(function ()
90 st.stanza("invalid\0name");
91 end, "invalid tag name:")
92 assert.has_error_match(function ()
93 st.stanza("name", { ["foo\1\2\3bar"] = "baz" });
94 end, "invalid attribute name: contains control characters")
95 assert.has_error_match(function ()
96 st.stanza("name", { ["foo"] = "baz\1\2\3\255moo" });
97 end, "invalid attribute value: contains control characters")
98 end)
99 it("validates types", function ()
100 assert.has_error_match(function ()
101 st.stanza(1);
102 end, "invalid tag name: expected string, got number")
103 assert.has_error_match(function ()
104 st.stanza("name", "string");
105 end, "invalid attributes: expected table, got string")
106 assert.has_error_match(function ()
107 st.stanza("name",{1});
108 end, "invalid attribute name: expected string, got number")
109 assert.has_error_match(function ()
110 st.stanza("name",{foo=1});
111 end, "invalid attribute value: expected string, got number")
112 end)
88 end); 113 end);
89 114
90 describe("#message()", function() 115 describe("#message()", function()
91 it("should work", function() 116 it("should work", function()
92 local m = st.message(); 117 local m = st.message();