@@ -3,7 +3,7 @@ import type { RateLimiterPlugin } from '$lib/server/limiters/rateLimiterPlugin.j
33import { RateLimiter } from '$lib/server/rateLimiter.js' ;
44import { RetryAfterRateLimiter } from '$lib/server/retryAfterRateLimiter.js' ;
55import type { RequestEvent } from '@sveltejs/kit' ;
6- import { describe , it , expect , beforeEach } from 'vitest' ;
6+ import { describe , it , expect , beforeEach , assert } from 'vitest' ;
77import { mock } from 'vitest-mock-extended' ;
88
99const hashFunction = async ( input : string ) => {
@@ -166,7 +166,10 @@ describe('Basic rate limiter', async () => {
166166
167167 expect ( await limiter . isLimited ( event ) ) . toEqual ( false ) ; // 1 1 1
168168 expect ( await limiter . isLimited ( event ) ) . toEqual ( false ) ; // 2 2 2
169- expect ( await limiter . isLimited ( event ) ) . toEqual ( true ) ; // 3 2 2 (Cookie fails)
169+ expect ( await limiter . check ( event ) ) . toEqual ( {
170+ limited : true ,
171+ reason : 'cookie'
172+ } ) ; // 3 2 2 (Cookie fails)
170173
171174 event . cookies . delete ( 'testcookie' , { path : '/' } ) ;
172175
@@ -491,8 +494,9 @@ describe('Retry-After rate limiter', () => {
491494 expect ( status ) . toEqual ( { limited : false , retryAfter : 0 } ) ;
492495
493496 status = await limiter . check ( event ) ;
494- expect ( status . limited ) . toBe ( true ) ;
497+ assert ( status . limited ) ;
495498 expect ( status . retryAfter . toString ( ) ) . toMatch ( / ^ [ 3 4 5 ] $ / ) ;
499+ expect ( status . reason ) . toEqual ( 'IPUA' ) ;
496500
497501 await delay ( 5100 ) ;
498502
@@ -522,8 +526,9 @@ describe('Retry-After rate limiter', () => {
522526 expect ( status ) . toEqual ( { limited : false , retryAfter : 0 } ) ;
523527
524528 status = await limiter . check ( event ) ;
525- expect ( status . limited ) . toEqual ( true ) ;
529+ assert ( status . limited ) ;
526530 expect ( status . retryAfter . toString ( ) ) . toMatch ( / ^ [ 0 1 ] $ / ) ;
531+ expect ( status . reason ) . toEqual ( 'IPUA' ) ;
527532
528533 event . request . headers . set ( 'User-Agent' , 'Safari 2' ) ;
529534
@@ -534,23 +539,26 @@ describe('Retry-After rate limiter', () => {
534539 expect ( status ) . toEqual ( { limited : false , retryAfter : 0 } ) ;
535540
536541 status = await limiter . check ( event ) ;
537- expect ( status . limited ) . toEqual ( true ) ;
542+ assert ( status . limited ) ;
538543 expect ( status . retryAfter ) . toBeGreaterThanOrEqual ( 59 ) ;
539544 expect ( status . retryAfter ) . toBeLessThanOrEqual ( 60 ) ;
545+ expect ( status . reason ) . toEqual ( 'IP' ) ;
540546
541547 event . request . headers . set ( 'User-Agent' , 'Safari 3' ) ;
542548
543549 status = await limiter . check ( event ) ;
544- expect ( status . limited ) . toEqual ( true ) ;
550+ assert ( status . limited ) ;
545551 expect ( status . retryAfter ) . toBeGreaterThanOrEqual ( 59 ) ;
546552 expect ( status . retryAfter ) . toBeLessThanOrEqual ( 60 ) ;
553+ expect ( status . reason ) . toEqual ( 'IP' ) ;
547554
548555 await delay ( 1100 ) ;
549556
550557 status = await limiter . check ( event ) ;
551- expect ( status . limited ) . toEqual ( true ) ;
558+ assert ( status . limited ) ;
552559 expect ( status . retryAfter ) . toBeGreaterThanOrEqual ( 58 ) ;
553560 expect ( status . retryAfter ) . toBeLessThanOrEqual ( 59 ) ;
561+ expect ( status . reason ) . toEqual ( 'IP' ) ;
554562
555563 await limiter . clear ( ) ;
556564
0 commit comments