Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 23:55:22 +0100] rev 12759
util.datetime: Add some missing test cases
You guessed it, mutation testing.
Matthew Wild <mwild1@gmail.com> [Sat, 08 Oct 2022 20:39:14 +0100] rev 12758
util.roles: Fix tests to use autogenerated role id
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.