diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2024-12-08 09:22:38 -0500 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2024-12-08 09:22:38 -0500 |
| commit | a7a1edc92ea2c40ddaacf804c268e31f383816c5 (patch) | |
| tree | 4498472a6a745f27813e6e5e9795d2a99d224a52 /packages/backend/test/unit/server/api | |
| parent | support fractional rate limit scaling (diff) | |
| download | sharkey-a7a1edc92ea2c40ddaacf804c268e31f383816c5.tar.gz sharkey-a7a1edc92ea2c40ddaacf804c268e31f383816c5.tar.bz2 sharkey-a7a1edc92ea2c40ddaacf804c268e31f383816c5.zip | |
fix NaN from extremely high rate limits
Diffstat (limited to 'packages/backend/test/unit/server/api')
| -rw-r--r-- | packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts index 07bcfb6309..7e0c01f849 100644 --- a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts +++ b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts @@ -564,6 +564,20 @@ describe(SkRateLimiterService, () => { expect(counter?.c).toBe(1); expect(counter?.t).toBe(0); }); + + it('should not allow dripRate to be lower than 0', async () => { + // real-world case; taken from StreamingApiServerService + limit.max = 4096; + limit.duration = 2000; + counter = { c: 4096, t: 0 }; + + const i1 = await serviceUnderTest().limit(limit, actor); + mockTimeService.now = 1; + const i2 = await serviceUnderTest().limit(limit, actor); + + expect(i1.blocked).toBeTruthy(); + expect(i2.blocked).toBeFalsy(); + }); }); describe('with legacy limit and min interval', () => { |