Software /
code /
prosody
Diff
spec/util_stanza_spec.lua @ 10503:e25a1a9a6e7e
util.stanza: Accept util.error object to error_reply
If we're moving towards util.error as the standard error container then
this makes sense.
This may allow for future extensibility without needing a lot of
optional arguments.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 14 Dec 2019 22:47:41 +0100 |
parent | 10446:5c2d1b13537c |
child | 10717:05e4645fc9b3 |
line wrap: on
line diff
--- a/spec/util_stanza_spec.lua Sat Dec 14 22:43:12 2019 +0100 +++ b/spec/util_stanza_spec.lua Sat Dec 14 22:47:41 2019 +0100 @@ -1,5 +1,6 @@ local st = require "util.stanza"; +local errors = require "util.error"; describe("util.stanza", function() describe("#preserialize()", function() @@ -231,6 +232,22 @@ end, "got stanza of type error"); end); + it("should accept util.error objects", function () + local s = st.message({ to = "touser", from = "fromuser", id = "123", type = "chat" }, "Hello"); + local e = errors.new({ type = "modify", condition = "not-acceptable", text = "Bork bork bork" }); + local r = st.error_reply(s, e); + + assert.are.equal(r.name, s.name); + assert.are.equal(r.id, s.id); + assert.are.equal(r.attr.to, s.attr.from); + assert.are.equal(r.attr.from, s.attr.to); + assert.are.equal(r.attr.type, "error"); + assert.are.equal(r.tags[1].name, "error"); + assert.are.equal(r.tags[1].attr.type, e.type); + assert.are.equal(r.tags[1].tags[1].name, e.condition); + assert.are.equal(r.tags[1].tags[2]:get_text(), e.text); + end); + end); describe("should reject #invalid", function ()