Software /
code /
prosody
Annotate
spec/util_error_spec.lua @ 10751:4db4bd8a7822
mod_mam: Don't store any groupchat messages
The intent was to not store MUC groupchat messages, which are sent from
the MUC to local full JIDs, while allowing for potential future
account based group chat. However, since this function handles messages
in both directions and outgoing MUC messages are sent to the bare room
JID, those were stored.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 23 Apr 2020 00:55:34 +0200 |
parent | 10365:744ca71a49f7 |
child | 11081:0b68697450c5 |
rev | line source |
---|---|
10101 | 1 local errors = require "util.error" |
2 | |
3 describe("util.error", function () | |
4 describe("new()", function () | |
5 it("works", function () | |
6 local err = errors.new("bork", "bork bork"); | |
7 assert.not_nil(err); | |
8 assert.equal("cancel", err.type); | |
9 assert.equal("undefined-condition", err.condition); | |
10 assert.same("bork bork", err.context); | |
11 end); | |
12 | |
13 describe("templates", function () | |
14 it("works", function () | |
15 local templates = { | |
16 ["fail"] = { | |
17 type = "wait", | |
18 condition = "internal-server-error", | |
10365
744ca71a49f7
util.error: Add well-known field 'code' in error templates
Kim Alvefur <zash@zash.se>
parents:
10101
diff
changeset
|
19 code = 555; |
10101 | 20 }; |
21 }; | |
22 local err = errors.new("fail", { traceback = "in some file, somewhere" }, templates); | |
23 assert.equal("wait", err.type); | |
24 assert.equal("internal-server-error", err.condition); | |
10365
744ca71a49f7
util.error: Add well-known field 'code' in error templates
Kim Alvefur <zash@zash.se>
parents:
10101
diff
changeset
|
25 assert.equal(555, err.code); |
10101 | 26 assert.same({ traceback = "in some file, somewhere" }, err.context); |
27 end); | |
28 end); | |
29 | |
30 end); | |
31 | |
32 describe("is_err()", function () | |
33 it("works", function () | |
34 assert.truthy(errors.is_err(errors.new())); | |
35 assert.falsy(errors.is_err("not an error")); | |
36 end); | |
37 end); | |
38 | |
39 describe("coerce", function () | |
40 it("works", function () | |
41 local ok, err = errors.coerce(nil, "it dun goofed"); | |
42 assert.is_nil(ok); | |
43 assert.truthy(errors.is_err(err)) | |
44 end); | |
45 end); | |
46 | |
47 describe("from_stanza", function () | |
48 it("works", function () | |
49 local st = require "util.stanza"; | |
50 local m = st.message({ type = "chat" }); | |
51 local e = st.error_reply(m, "modify", "bad-request"); | |
52 local err = errors.from_stanza(e); | |
53 assert.truthy(errors.is_err(err)); | |
54 assert.equal("modify", err.type); | |
55 assert.equal("bad-request", err.condition); | |
56 assert.equal(e, err.context.stanza); | |
57 end); | |
58 end); | |
59 | |
60 describe("__tostring", function () | |
61 it("doesn't throw", function () | |
62 assert.has_no.errors(function () | |
63 -- See 6f317e51544d | |
64 tostring(errors.new()); | |
65 end); | |
66 end); | |
67 end); | |
68 | |
69 end); | |
70 |