Changeset

10572:d960c703e6b3

util.pubsub: Cover subscription filter in a partial test I'm not sure I understand spies well enough to test that the arguments and return values are as expected. Better than nothing at least.
author Kim Alvefur <zash@zash.se>
date Thu, 26 Dec 2019 01:52:14 +0100
parents 10571:cfeb0077c9e9
children 10573:3b8431eed785
files spec/util_pubsub_spec.lua
diffstat 1 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/spec/util_pubsub_spec.lua	Sat Dec 28 06:18:58 2019 +0100
+++ b/spec/util_pubsub_spec.lua	Thu Dec 26 01:52:14 2019 +0100
@@ -483,4 +483,30 @@
 
 	end);
 
+	describe("subscriber filter", function ()
+		it("works", function ()
+			local filter = spy.new(function (subs)
+				return {["modified"] = true};
+			end);
+			local broadcaster = spy.new(function (notif_type, node_name, subscribers, item) -- luacheck: ignore 212
+			end);
+			local service = pubsub.new({
+					subscriber_filter = filter;
+					broadcaster = broadcaster;
+				});
+
+			local ok = service:create("node", true);
+			assert.truthy(ok);
+
+			local ok = service:add_subscription("node", true, "someone");
+			assert.truthy(ok);
+
+			local ok = service:publish("node", true, "1", "item");
+			assert.truthy(ok);
+			-- TODO how to match table arguments?
+			assert.spy(filter).was_called();
+			assert.spy(broadcaster).was_called();
+		end);
+	end);
+
 end);