Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 20:33:01 +0100] rev 12757
util.roles: Add some more missing test cases
Found via mutation testing.
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 18:04:30 +0100] rev 12756
util.promise: Fix field name in failing test (introduced in 2639e0e1c378)
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:56:38 +0100] rev 12755
util.promise: Add some missing test cases (found through mutation testing)
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:45:23 +0100] rev 12754
util.promise: Remove line that was supposed to be removed in eb9814372c54
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:43:26 +0100] rev 12753
util.promise: Remove some redundant checks, add tests confirming redundancy
This lines don't appear to do anything useful, and all tests pass when they
are removed. Discovered via mutation testing.
I added extra tests to exercise this code, because I wasn't certain that there
were no side-effects caused by removal. Everything appears to be fine, thanks
to the "pending" check at the start of promise_settle().
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 17:01:35 +0100] rev 12752
util.roles: Add a :policies() method to iterate through available policies
We don't expose the policies directly, to force people to go through :may().
However, there are times when we really just need to know what policies a
role has inside it (e.g. for reporting or debugging purposes).
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 16:58:52 +0100] rev 12751
util.roles: Add tests
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 16:58:08 +0100] rev 12750
util.roles: Return nil if the role has no explicit policy (fixes inheritance)
Previously, if the first inherited role had no opinion, it returned false and
prevented further consultation of other inherited roles.
This bug was found thanks to the implementation of missing test cases
identified through mutation testing.
Matthew Wild <mwild1@gmail.com> [Fri, 07 Oct 2022 11:35:56 +0100] rev 12749
mod_smacks: Change boolean attribute from '1' to 'true' for compatibility
Conversations 2.10.10 and earlier expect this to be literally 'true' and don't
recognise '1'. This leads to it not attempting resumption with Prosody at all
since this change was introduced in 36ba170c4fd0.
Thanks to Zash for noticing, debugging and diagnosing this issue.
This issue is fixed in Conversations commit 052c58f3 (unreleased at the time
of writing).
Matthew Wild <mwild1@gmail.com> [Thu, 06 Oct 2022 18:34:40 +0100] rev 12748
util.iterators: join: Work even with only a single iterator in the chain