Skip to content

Commit fa9ce19

Browse files
authored
Merge pull request #307 from roggervalf/test-change-maximum-points
test: add test cases for updating default maximum points
2 parents b0e5c70 + 4de1800 commit fa9ce19

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

test/RateLimiterRedis.redis.test.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,47 @@ describe('RateLimiterRedis with fixed window', function RateLimiterRedisTest() {
5858
});
5959
});
6060

61+
describe('when resetting maximum points', () => {
62+
it('consume 2 points', (done) => {
63+
const testKey = 'consume1';
64+
const rateLimiter = new RateLimiterRedis({
65+
storeClient: redisMockClient,
66+
points: 2,
67+
duration: 5,
68+
});
69+
rateLimiter.points = 3
70+
rateLimiter
71+
.consume(testKey, 2)
72+
.then(() => {
73+
redisMockClient.get(rateLimiter.getKey(testKey)).then((consumedPoints)=>{
74+
expect(consumedPoints).to.equal('2');
75+
done();
76+
});
77+
})
78+
.catch((err) => {
79+
done(err);
80+
});
81+
});
82+
83+
it('rejected when consume more than maximum points', (done) => {
84+
const testKey = 'consume2';
85+
const rateLimiter = new RateLimiterRedis({
86+
storeClient: redisMockClient,
87+
points: 1,
88+
duration: 5,
89+
useRedisPackage: true,
90+
});
91+
rateLimiter.points = 3
92+
rateLimiter
93+
.consume(testKey, 4)
94+
.then(() => {})
95+
.catch((rejRes) => {
96+
expect(rejRes.msBeforeNext >= 0).to.equal(true);
97+
done();
98+
});
99+
});
100+
});
101+
61102
describe('when customIncrTtlLuaScript is provided', () => {
62103
it('rejected when consume more than maximum points and multiply delay', (done) => {
63104
const testKey = 'consume2';

0 commit comments

Comments
 (0)