Software /
code /
prosody
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);