Skip to content

Commit b60b7a0

Browse files
committed
Update mock in rate limiter test
1 parent 9673780 commit b60b7a0

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

‎src/pages/api/_utils/__tests__/rateLimit.spec.ts‎

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest'
22

3+
const { mockIsDev, mockIsTest } = vi.hoisted(() => ({
4+
mockIsDev: vi.fn(() => false),
5+
mockIsTest: vi.fn(() => false),
6+
}))
7+
8+
// Mock server environment helpers that get re-exported through environmentApi
9+
vi.mock('@lib/config/environmentServer', () => ({
10+
isCI: vi.fn(() => false),
11+
isDev: mockIsDev,
12+
isE2eTest: vi.fn(() => false),
13+
isGitHub: vi.fn(() => false),
14+
isProd: vi.fn(() => true),
15+
isTest: mockIsTest,
16+
isUnitTest: vi.fn(() => false),
17+
isVercel: vi.fn(() => false),
18+
}))
19+
320
// Mock environment utilities BEFORE importing the module under test
4-
vi.mock('@pages/api/_environment', () => ({
21+
vi.mock('@pages/api/_environment/environmentApi', () => ({
522
getUpstashApiToken: vi.fn(() => 'test-token'),
623
getUpstashApiUrl: vi.fn(() => 'https://test-redis.upstash.io'),
7-
isDev: vi.fn(() => false),
8-
isTest: vi.fn(() => false),
24+
isDev: mockIsDev,
25+
isTest: mockIsTest,
926
}))
1027

1128
import { rateLimiters, checkRateLimit, checkContactRateLimit } from '@pages/api/_utils/rateLimit'
@@ -94,8 +111,11 @@ describe('Rate Limit Utils', () => {
94111
config: {},
95112
}
96113

97-
// Set the rate limiter for tests
98-
Object.assign(rateLimiters.consent, mockRateLimiter)
114+
// Ensure each exported limiter uses the shared mock implementation
115+
Object.keys(rateLimiters).forEach((key) => {
116+
const mapKey = key as keyof typeof rateLimiters
117+
Object.assign(rateLimiters[mapKey], mockRateLimiter)
118+
})
99119
})
100120

101121
it('should return success when rate limit is not exceeded', async () => {

0 commit comments

Comments
 (0)