spec/util_pubsub_spec.lua
changeset 9176 c53663e13b51
parent 9174 5f03fe90704f
child 9177 160032d55ff1
--- a/spec/util_pubsub_spec.lua	Sun Aug 12 11:33:22 2018 +0100
+++ b/spec/util_pubsub_spec.lua	Sun Aug 12 11:34:05 2018 +0100
@@ -30,7 +30,10 @@
 	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 @@
 
 		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 @@
 			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 ()