Diff

spec/util_pubsub_spec.lua @ 11721:7a77f0c05382

util.pubsub: Fix behavior of persist_items disabled When set to 'false' there is no need for a persistence interface at all, since items are not persisted after being broadcast. Had started wondering if maybe the behavior was wrong, after reading parts of XEP-0060 that pointed in that direction. Some discussion of this can be found in logs of xmpp:xsf@muc.xmpp.org?join from around 2021-07-20 Thanks to Ralph for confirming.
author Kim Alvefur <zash@zash.se>
date Thu, 22 Jul 2021 21:01:11 +0200
parent 10573:3b8431eed785
child 11723:3ead0967e04d
line wrap: on
line diff
--- a/spec/util_pubsub_spec.lua	Wed Jul 21 23:35:08 2021 +0200
+++ b/spec/util_pubsub_spec.lua	Thu Jul 22 21:01:11 2021 +0200
@@ -509,4 +509,23 @@
 		end);
 	end);
 
+	describe("persist_items", function()
+		it("can be disabled", function()
+			local broadcaster = spy.new(function(notif_type, node_name, subscribers, item) -- luacheck: ignore 212
+			end);
+			local service = pubsub.new { node_defaults = { persist_items = false }, broadcaster = broadcaster }
+
+			local ok = service:create("node", true)
+			assert.truthy(ok);
+
+			local ok = service:publish("node", true, "1", "item");
+			assert.truthy(ok);
+			assert.spy(broadcaster).was_called();
+
+			local ok, items = service:get_items("node", true);
+			assert.truthy(ok);
+			assert.same(items, {});
+		end);
+
+	end)
 end);