aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2018-08-12 11:34:05 +0100
committerMatthew Wild <mwild1@gmail.com>2018-08-12 11:34:05 +0100
commiteb90269c43b1b40a4388173d904b97eeca6d0bf7 (patch)
treecd254e11d6448399ebcac80debde1f3023f97a94
parentf8dc8b6aa8f9b77eb622cb62536ffbf373285e98 (diff)
downloadprosody-eb90269c43b1b40a4388173d904b97eeca6d0bf7.tar.gz
prosody-eb90269c43b1b40a4388173d904b97eeca6d0bf7.zip
util.pubsub tests: Extend publishing tests to check for correct notification behaviour on subscribe/unsubscribe
-rw-r--r--spec/util_pubsub_spec.lua14
1 files changed, 13 insertions, 1 deletions
diff --git a/spec/util_pubsub_spec.lua b/spec/util_pubsub_spec.lua
index 0715298c..5ee5a14b 100644
--- a/spec/util_pubsub_spec.lua
+++ b/spec/util_pubsub_spec.lua
@@ -30,7 +30,10 @@ describe("util.pubsub", function ()
end);
describe("simple publishing", function ()
- local broadcaster = spy.new(function () end);
+ local notified;
+ local broadcaster = spy.new(function (notif_type, node_name, subscribers, item)
+ notified = subscribers;
+ end);
local service = pubsub.new({
broadcaster = broadcaster;
});
@@ -45,6 +48,7 @@ describe("util.pubsub", function ()
it("publishes an item", function ()
assert.truthy(service:publish("node", true, "1", "item 1"));
+ assert.truthy(notified["someone"]);
end);
it("called the broadcaster", function ()
@@ -57,6 +61,14 @@ describe("util.pubsub", function ()
assert.same({ "1", ["1"] = "item 1" }, ret);
end);
+ it("lets someone unsubscribe", function ()
+ assert.truthy(service:remove_subscription("node", true, "someone"));
+ end);
+
+ it("does not send notifications after subscription is removed", function ()
+ assert.truthy(service:publish("node", true, "1", "item 1"));
+ assert.is_nil(notified["someone"]);
+ end);
end);
describe("#issue1082", function ()