Commit bd32d94
committed
fix: resolve code review findings for PR #658
P1 — Non-2xx cache responses bypassed fallback (authz.ts + fga.ts):
`fetch` resolves (does not throw) for 4xx/5xx responses, so the
existing `catch` block never triggered on HTTP errors. Added an
explicit `response.ok` guard — the fallback to `httpClient.post`
now fires for any non-2xx response from the cache, not just network-
level exceptions. Fixed in both authz.ts and fga.ts.
P1 — Timer leak: `clearTimeout` missing in error path (authz.ts + fga.ts):
Moved `const controller/timeoutId` before the try block and moved
`clearTimeout` into a `finally` clause so the timer is always
cancelled regardless of success, HTTP error, or exception. Fixed in
both authz.ts and fga.ts.
P3 — Missing tests for non-2xx cache response fallback (authz.test.ts):
Added two new test cases covering the scenario where `fetch` resolves
with `{ ok: false, status: 503 }` for `whoCanAccess` and
`whatCanTargetAccess`. These tests would have caught the P1 bug.
Dismissed:
P3 code duplication (postWithOptionalCache identical in authz.ts and
fga.ts): intentional pattern match per PR description; extraction to
a shared helper is a follow-up refactor.
Verification: 309 tests pass, lint clean, build successful.1 parent 4a9c8b4 commit bd32d94
3 files changed
+64
-12
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
685 | 685 | | |
686 | 686 | | |
687 | 687 | | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
688 | 736 | | |
689 | 737 | | |
690 | 738 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
21 | 23 | | |
22 | 24 | | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | 25 | | |
27 | 26 | | |
28 | 27 | | |
| |||
35 | 34 | | |
36 | 35 | | |
37 | 36 | | |
38 | | - | |
39 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
40 | 40 | | |
41 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
42 | 44 | | |
43 | 45 | | |
44 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| 19 | + | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
| |||
33 | 32 | | |
34 | 33 | | |
35 | 34 | | |
36 | | - | |
37 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| |||
0 commit comments