refactor: rateLimiter.canTry logic to check >= 1
This commit is contained in:
parent
7a5042176e
commit
f80d5c3764
@ -18,7 +18,10 @@ export class RateLimiter {
|
||||
private readonly hourLimiter = new Limiter(12, "hour")
|
||||
|
||||
public canTry(): boolean {
|
||||
return this.minuteLimiter.getTokensRemaining() > 0 || this.hourLimiter.getTokensRemaining() > 0
|
||||
// Note: we must check using >= 1 because technically when there are no tokens left
|
||||
// you get back a number like 0.00013333333333333334
|
||||
// which would cause fail if the logic were > 0
|
||||
return this.minuteLimiter.getTokensRemaining() >= 1 || this.hourLimiter.getTokensRemaining() >= 1
|
||||
}
|
||||
|
||||
public removeToken(): boolean {
|
||||
|
@ -54,7 +54,7 @@ test.describe("login", () => {
|
||||
// The current RateLimiter allows 2 logins per minute plus
|
||||
// 12 logins per hour for a total of 14
|
||||
// See: src/node/routes/login.ts
|
||||
for (let i = 1; i <= 13; i++) {
|
||||
for (let i = 1; i <= 14; i++) {
|
||||
await page.click(".submit")
|
||||
await page.waitForLoadState("networkidle")
|
||||
// We double-check that the correct error message shows
|
||||
|
Loading…
Reference in New Issue
Block a user