@@ -17,6 +17,14 @@ vi.mock("./hooks.js", async () => {
|
17 | 17 | }; |
18 | 18 | }); |
19 | 19 | |
| 20 | +function expectRetryAfterHeader(setHeader: ReturnType<typeof vi.fn>): void { |
| 21 | +const retryAfterCall = setHeader.mock.calls.find(([name]) => name === "Retry-After"); |
| 22 | +expect(retryAfterCall).toBeDefined(); |
| 23 | +const retryAfterValue = retryAfterCall?.[1]; |
| 24 | +expect(typeof retryAfterValue).toBe("string"); |
| 25 | +expect(Number.parseInt(String(retryAfterValue), 10)).toBeGreaterThan(0); |
| 26 | +} |
| 27 | + |
20 | 28 | describe("createHooksRequestHandler timeout status mapping", () => { |
21 | 29 | beforeEach(() => { |
22 | 30 | readJsonBodyMock.mockClear(); |
@@ -62,7 +70,7 @@ describe("createHooksRequestHandler timeout status mapping", () => {
|
62 | 70 | |
63 | 71 | expect(handled).toBe(true); |
64 | 72 | expect(mappedRes.statusCode).toBe(429); |
65 | | -expect(setHeader).toHaveBeenCalledWith("Retry-After", expect.any(String)); |
| 73 | +expectRetryAfterHeader(setHeader); |
66 | 74 | }); |
67 | 75 | |
68 | 76 | test("uses trusted proxy forwarded client ip for hook auth throttling", async () => { |
@@ -92,7 +100,7 @@ describe("createHooksRequestHandler timeout status mapping", () => {
|
92 | 100 | |
93 | 101 | expect(handled).toBe(true); |
94 | 102 | expect(forwardedRes.statusCode).toBe(429); |
95 | | -expect(setHeader).toHaveBeenCalledWith("Retry-After", expect.any(String)); |
| 103 | +expectRetryAfterHeader(setHeader); |
96 | 104 | }); |
97 | 105 | |
98 | 106 | test.each(["0.0.0.0", "::"])( |
|