summaryrefslogtreecommitdiff
path: root/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2025-07-31 21:53:33 +0000
committerdakkar <dakkar@thenautilus.net>2025-07-31 21:53:33 +0000
commita2bc6603c244290707a7aadb661833fa74c69460 (patch)
tree4def24de3c615351ba6ab86390029b393a81fa2f /packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts
parentmerge: disable outgoing mastodon quotes *FOR STABLE* (!1169) (diff)
parentmerge: Improve URL validation *FOR STABLE* (!1191) (diff)
downloadsharkey-a2bc6603c244290707a7aadb661833fa74c69460.tar.gz
sharkey-a2bc6603c244290707a7aadb661833fa74c69460.tar.bz2
sharkey-a2bc6603c244290707a7aadb661833fa74c69460.zip
merge: For 2025.4.4 (!1199)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1199 Approved-by: Hazelnoot <acomputerdog@gmail.com> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts')
-rw-r--r--packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts36
1 files changed, 26 insertions, 10 deletions
diff --git a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts
index b1f100698b..f7250600e3 100644
--- a/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts
+++ b/packages/backend/test/unit/server/api/SkRateLimiterServiceTests.ts
@@ -303,9 +303,12 @@ describe(SkRateLimiterService, () => {
const i1 = await serviceUnderTest().limit(limit, actor); // 1 + 1 = 2
const i2 = await serviceUnderTest().limit(limit, actor); // 2 + 1 = 3
+ mockTimeService.now += 500; // 3 - 1 = 2 (at 1/2 time)
+ const i3 = await serviceUnderTest().limit(limit, actor);
expect(i1.blocked).toBeFalsy();
expect(i2.blocked).toBeTruthy();
+ expect(i3.blocked).toBeFalsy();
});
it('should set counter expiration', async () => {
@@ -563,11 +566,15 @@ describe(SkRateLimiterService, () => {
mockDefaultUserPolicies.rateLimitFactor = 0.5;
limitCounter = 1;
limitTimestamp = 0;
- mockTimeService.now += 500;
- const info = await serviceUnderTest().limit(limit, actor);
+ const i1 = await serviceUnderTest().limit(limit, actor);
+ const i2 = await serviceUnderTest().limit(limit, actor);
+ mockTimeService.now += 500;
+ const i3 = await serviceUnderTest().limit(limit, actor);
- expect(info.blocked).toBeFalsy();
+ expect(i1.blocked).toBeFalsy();
+ expect(i2.blocked).toBeTruthy();
+ expect(i3.blocked).toBeFalsy();
});
it('should set counter expiration', async () => {
@@ -738,12 +745,17 @@ describe(SkRateLimiterService, () => {
it('should scale limit by factor', async () => {
mockDefaultUserPolicies.rateLimitFactor = 0.5;
- limitCounter = 10;
+ limitCounter = 1;
limitTimestamp = 0;
- const info = await serviceUnderTest().limit(limit, actor); // 10 + 1 = 11
+ const i1 = await serviceUnderTest().limit(limit, actor);
+ const i2 = await serviceUnderTest().limit(limit, actor);
+ mockTimeService.now += 500;
+ const i3 = await serviceUnderTest().limit(limit, actor);
- expect(info.blocked).toBeTruthy();
+ expect(i1.blocked).toBeFalsy();
+ expect(i2.blocked).toBeTruthy();
+ expect(i3.blocked).toBeFalsy();
});
it('should set counter expiration', async () => {
@@ -932,13 +944,17 @@ describe(SkRateLimiterService, () => {
it('should scale limit and interval by factor', async () => {
mockDefaultUserPolicies.rateLimitFactor = 0.5;
- limitCounter = 5;
+ limitCounter = 19;
limitTimestamp = 0;
- mockTimeService.now += 500;
- const info = await serviceUnderTest().limit(limit, actor);
+ const i1 = await serviceUnderTest().limit(limit, actor);
+ const i2 = await serviceUnderTest().limit(limit, actor);
+ mockTimeService.now += 500;
+ const i3 = await serviceUnderTest().limit(limit, actor);
- expect(info.blocked).toBeFalsy();
+ expect(i1.blocked).toBeFalsy();
+ expect(i2.blocked).toBeTruthy();
+ expect(i3.blocked).toBeFalsy();
});
it('should set counter expiration', async () => {