diff options
author | Matthew Wild <mwild1@gmail.com> | 2018-08-12 11:34:05 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2018-08-12 11:34:05 +0100 |
commit | eb90269c43b1b40a4388173d904b97eeca6d0bf7 (patch) | |
tree | cd254e11d6448399ebcac80debde1f3023f97a94 /spec/util_pubsub_spec.lua | |
parent | f8dc8b6aa8f9b77eb622cb62536ffbf373285e98 (diff) | |
download | prosody-eb90269c43b1b40a4388173d904b97eeca6d0bf7.tar.gz prosody-eb90269c43b1b40a4388173d904b97eeca6d0bf7.zip |
util.pubsub tests: Extend publishing tests to check for correct notification behaviour on subscribe/unsubscribe
Diffstat (limited to 'spec/util_pubsub_spec.lua')
-rw-r--r-- | spec/util_pubsub_spec.lua | 14 |
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 () |