Marc-André Bombeck
3f932040ad
test(sharing): hold every arm of the acting-account resolver
...
The unit file walks the arms with the grant module deliberately unmocked,
so the resolver consuming the one "is this grant active" predicate is a
property under test rather than a claim in a comment. Its Prisma fake
honours its own `where` clause for the same reason: a fake that answers
any query with any row turns every scoping assertion into a check that
cannot fail.
The integration file proves the two things a unit suite cannot, because
both are about which rows come back. Substitution: the owner's
measurements are returned and the delegate's own, seeded alongside, are
not, so a resolver that quietly served the caller their own record shows
up as the wrong values rather than as an empty list. Never cached: a
revocation lands between two requests inside one test and the second one
403s.
The do-no-harm arm runs against a real shipped route, and the cookie-only
helpers are asserted against a real session row carrying a real switch,
because the one edit that would break them is `getSession()` itself
substituting the owner and no mocked session can catch that.
The structural guard freezes the set of files allowed to touch the
carrier column and the selector header, and asserts a non-zero match
count before comparing against the allowlist. A matcher that finds
nothing agrees with an emptied list and reports success; this repository
has shipped several guards that did exactly that.
2026-08-02 11:32:13 +02:00
..
2026-08-02 10:03:04 +02:00
2026-05-10 10:34:32 +02:00
2026-08-02 11:32:13 +02:00
2026-05-09 21:00:23 +02:00
2026-08-02 09:04:36 +02:00
2026-05-09 20:46:20 +02:00
2026-07-20 13:42:38 +02:00
2026-07-20 12:24:15 +02:00
2026-06-27 20:37:35 +02:00
2026-06-19 22:20:31 +02:00
2026-05-10 11:05:40 +02:00
2026-07-29 13:42:04 +02:00
2026-06-28 19:26:16 +02:00
2026-07-31 11:15:27 +02:00
2026-07-04 14:46:19 +02:00
2026-05-16 19:46:43 +02:00
2026-05-14 23:49:32 +02:00
2026-05-24 22:22:30 +02:00
2026-07-29 14:20:56 +02:00
2026-07-16 08:48:41 +02:00
2026-07-21 13:08:28 +02:00
2026-07-28 23:02:00 +02:00
2026-07-22 04:14:15 +02:00
2026-07-19 11:41:12 +02:00
2026-07-19 11:40:56 +02:00
2026-07-18 02:09:33 +02:00
2026-07-28 00:09:22 +02:00
2026-07-31 07:37:48 +02:00
2026-08-02 09:04:36 +02:00
2026-07-29 15:59:12 +02:00
2026-06-28 14:00:55 +02:00
2026-07-20 00:40:20 +02:00
2026-06-14 14:26:58 +02:00
2026-06-19 22:20:31 +02:00
2026-06-27 22:40:01 +02:00
2026-06-27 20:37:35 +02:00
2026-05-10 11:05:40 +02:00
2026-07-21 01:34:29 +02:00
2026-07-26 18:34:42 +02:00
2026-06-19 22:20:31 +02:00
2026-06-26 14:17:36 +02:00
2026-07-16 23:32:28 +02:00
2026-05-10 16:11:12 +02:00
2026-05-11 02:38:17 +02:00
2026-07-24 18:28:41 +02:00
2026-06-01 19:54:26 +02:00
2026-07-15 22:49:07 +02:00
2026-07-25 21:57:06 +02:00
2026-08-02 09:04:36 +02:00
2026-08-02 02:00:08 +02:00
2026-07-20 00:40:20 +02:00
2026-07-17 14:29:07 +02:00
2026-07-17 14:29:07 +02:00
2026-07-20 12:24:15 +02:00
2026-07-26 00:45:08 +02:00
2026-07-26 00:45:08 +02:00
2026-07-08 22:05:05 +02:00
2026-07-22 04:14:15 +02:00
2026-07-21 13:08:28 +02:00
2026-08-01 19:35:16 +02:00
2026-08-01 19:26:47 +02:00
2026-07-21 00:36:40 +02:00
2026-05-10 00:11:36 +02:00
2026-06-22 09:00:39 +02:00
2026-06-22 09:00:39 +02:00
2026-07-19 13:40:03 +02:00
2026-07-21 00:36:40 +02:00
2026-07-29 14:18:20 +02:00
2026-07-29 14:22:49 +02:00
2026-07-28 21:11:43 +02:00
2026-08-01 17:56:20 +02:00
2026-07-31 16:48:40 +02:00
2026-05-09 18:08:11 +02:00
2026-06-19 22:20:31 +02:00
2026-05-10 01:30:06 +02:00
2026-05-10 11:05:40 +02:00
2026-06-28 19:23:57 +02:00
2026-06-19 22:20:31 +02:00
2026-07-07 15:55:50 +02:00
2026-06-19 22:20:31 +02:00
2026-06-11 02:19:28 +02:00
2026-07-27 14:35:34 +02:00
2026-07-28 14:00:44 +02:00
2026-07-27 14:35:33 +02:00
2026-07-26 18:02:35 +02:00
2026-07-26 14:37:57 +02:00
2026-07-29 15:59:27 +02:00
2026-07-29 15:59:12 +02:00
2026-06-28 02:00:37 +02:00
2026-07-25 15:03:44 +02:00
2026-06-19 22:20:31 +02:00
2026-06-19 22:20:31 +02:00
2026-07-28 15:12:23 +02:00
2026-05-16 10:59:42 +02:00
2026-05-31 14:36:17 +02:00
2026-07-25 15:03:44 +02:00
2026-06-19 22:20:31 +02:00
2026-07-26 00:45:08 +02:00
2026-06-19 22:20:31 +02:00
2026-06-10 11:18:00 +02:00
2026-07-29 16:11:45 +02:00
2026-07-26 16:37:10 +02:00
2026-07-29 16:43:22 +02:00
2026-07-29 15:59:12 +02:00
2026-07-29 15:59:12 +02:00
2026-06-19 22:20:31 +02:00
2026-07-25 18:41:40 +02:00
2026-06-27 19:56:30 +02:00
2026-05-09 18:08:11 +02:00
2026-06-14 11:31:52 +02:00
2026-06-05 03:45:04 +02:00
2026-06-27 19:33:10 +02:00
2026-06-19 22:20:31 +02:00
2026-07-28 14:01:11 +02:00
2026-06-27 19:33:10 +02:00
2026-07-30 23:30:28 +02:00
2026-07-25 11:36:18 +02:00
2026-07-29 13:55:57 +02:00
2026-07-27 23:15:38 +02:00
2026-07-26 14:37:57 +02:00
2026-07-22 04:14:15 +02:00
2026-07-19 02:31:45 +02:00
2026-05-08 17:46:31 +02:00
2026-07-29 13:42:04 +02:00
2026-07-14 11:56:29 +02:00
2026-06-26 13:24:30 +02:00
2026-06-19 22:20:31 +02:00
2026-07-23 15:16:48 +02:00
2026-07-19 13:48:46 +02:00
2026-05-21 23:13:21 +02:00
2026-08-02 10:03:04 +02:00
2026-07-23 09:04:43 +02:00
2026-07-07 22:00:14 +02:00
2026-07-26 14:04:44 +02:00
2026-06-04 10:05:47 +02:00
2026-07-29 16:08:41 +02:00
2026-07-15 22:49:07 +02:00
2026-07-31 01:12:22 +02:00
2026-07-26 14:04:44 +02:00
2026-08-02 02:00:08 +02:00
2026-07-22 04:14:15 +02:00
2026-06-19 22:20:31 +02:00
2026-06-05 08:10:13 +02:00
2026-07-22 04:14:15 +02:00
2026-05-17 15:36:38 +02:00
2026-07-18 02:30:33 +02:00
2026-05-24 22:22:30 +02:00
2026-05-14 23:49:32 +02:00
2026-05-17 15:36:38 +02:00
2026-07-22 04:14:15 +02:00
2026-07-22 04:14:15 +02:00
2026-07-20 00:40:20 +02:00