@@ -11,7 +11,11 @@ vi.mock('@/utils/getClientIp', () => ({
1111vi . mock ( '@/lib/rate-limit' , ( ) => {
1212 const RateLimiterMock = vi . fn ( ) ;
1313 RateLimiterMock . prototype . check = vi . fn ( ) . mockResolvedValue ( true ) ;
14- return { RateLimiter : RateLimiterMock } ;
14+ RateLimiterMock . prototype . checkWithResult = vi . fn ( ) . mockResolvedValue ( { success : true , limit : 10 , remaining : 9 , reset : 0 } ) ;
15+ return {
16+ RateLimiter : RateLimiterMock ,
17+ getRateLimitHeaders : vi . fn ( ) . mockReturnValue ( new Headers ( ) )
18+ } ;
1519} ) ;
1620
1721vi . mock ( '@/lib/resume-parser' , ( ) => ( {
@@ -77,7 +81,7 @@ describe('API Route: Student Resume Upload (Mock Integrations)', () => {
7781
7882 it ( '2. should assert local cache layers (RateLimiter) block requests before triggering async services' , async ( ) => {
7983 // Arrange: Mock the RateLimiter cache to block the user
80- vi . mocked ( RateLimiter . prototype . check ) . mockResolvedValueOnce ( false ) ;
84+ vi . mocked ( RateLimiter . prototype . checkWithResult ) . mockResolvedValueOnce ( { success : false , limit : 10 , remaining : 0 , reset : 0 } ) ;
8185
8286 const req = createMockRequest ( ) ;
8387
@@ -134,7 +138,7 @@ describe('API Route: Student Resume Upload (Mock Integrations)', () => {
134138 // Assert: Immediately fails validation (400)
135139 expect ( res . status ) . toBe ( 400 ) ;
136140 expect ( json . error ) . toMatch ( / N o r e s u m e f i l e p r o v i d e d / i) ;
137- expect ( RateLimiter . prototype . check ) . toHaveBeenCalled ( ) ;
141+ expect ( RateLimiter . prototype . checkWithResult ) . toHaveBeenCalled ( ) ;
138142 expect ( parseResume ) . not . toHaveBeenCalled ( ) ;
139143 } ) ;
140144} ) ;
0 commit comments