@@ -3,16 +3,16 @@ import { validServiceConfig, validTeamResponse } from "../../mocks.js";
33import { rateLimit } from "./index.js" ;
44
55const mockRedis = {
6- incr : vi . fn ( ) ,
7- expire : vi . fn ( ) ,
6+ set : vi . fn ( ) ,
7+ get : vi . fn ( ) ,
88} ;
99
1010describe ( "rateLimit" , ( ) => {
1111 beforeEach ( ( ) => {
1212 // Clear mock function calls and reset any necessary state.
1313 vi . clearAllMocks ( ) ;
14- mockRedis . incr . mockReset ( ) ;
15- mockRedis . expire . mockReset ( ) ;
14+ mockRedis . set . mockReset ( ) ;
15+ mockRedis . get . mockReset ( ) ;
1616 } ) ;
1717
1818 afterEach ( ( ) => {
@@ -35,7 +35,7 @@ describe("rateLimit", () => {
3535 } ) ;
3636
3737 it ( "should not rate limit if within limit" , async ( ) => {
38- mockRedis . incr . mockResolvedValue ( 50 ) ; // Current count is 50 requests in 10 seconds.
38+ mockRedis . get . mockResolvedValue ( "50" ) ; // Current count is 50 requests in 10 seconds.
3939
4040 const result = await rateLimit ( {
4141 team : validTeamResponse ,
@@ -50,11 +50,11 @@ describe("rateLimit", () => {
5050 rateLimit : 50 ,
5151 } ) ;
5252
53- expect ( mockRedis . expire ) . not . toHaveBeenCalled ( ) ;
53+ expect ( mockRedis . set ) . toHaveBeenCalledTimes ( 1 ) ;
5454 } ) ;
5555
5656 it ( "should rate limit if exceeded hard limit" , async ( ) => {
57- mockRedis . incr . mockResolvedValue ( 51 ) ;
57+ mockRedis . get . mockResolvedValue ( 51 ) ;
5858
5959 const result = await rateLimit ( {
6060 team : validTeamResponse ,
@@ -72,11 +72,11 @@ describe("rateLimit", () => {
7272 errorCode : "RATE_LIMIT_EXCEEDED" ,
7373 } ) ;
7474
75- expect ( mockRedis . expire ) . not . toHaveBeenCalled ( ) ;
75+ expect ( mockRedis . set ) . not . toHaveBeenCalled ( ) ;
7676 } ) ;
7777
7878 it ( "expires on the first incr request only" , async ( ) => {
79- mockRedis . incr . mockResolvedValue ( 1 ) ;
79+ mockRedis . get . mockResolvedValue ( "1" ) ;
8080
8181 const result = await rateLimit ( {
8282 team : validTeamResponse ,
@@ -90,11 +90,11 @@ describe("rateLimit", () => {
9090 requestCount : 1 ,
9191 rateLimit : 50 ,
9292 } ) ;
93- expect ( mockRedis . expire ) . toHaveBeenCalled ( ) ;
93+ expect ( mockRedis . set ) . toHaveBeenCalled ( ) ;
9494 } ) ;
9595
9696 it ( "enforces rate limit if sampled (hit)" , async ( ) => {
97- mockRedis . incr . mockResolvedValue ( 10 ) ;
97+ mockRedis . get . mockResolvedValue ( "10" ) ;
9898 vi . spyOn ( global . Math , "random" ) . mockReturnValue ( 0.08 ) ;
9999
100100 const result = await rateLimit ( {
@@ -117,7 +117,7 @@ describe("rateLimit", () => {
117117 } ) ;
118118
119119 it ( "does not enforce rate limit if sampled (miss)" , async ( ) => {
120- mockRedis . incr . mockResolvedValue ( 10 ) ;
120+ mockRedis . get . mockResolvedValue ( 10 ) ;
121121 vi . spyOn ( global . Math , "random" ) . mockReturnValue ( 0.15 ) ;
122122
123123 const result = await rateLimit ( {
0 commit comments