feat: disable rate limits when testing

This commit is contained in:
Lin, Hung-Shin committed 2023-11-17 11:27:48 +08:00
1 parent d0c01fffa8
commit ca057a657b
2 files changed
+16 -8

No files matched your search

+5 -5
View File
@@ -40,13 +40,13 @@ const config = {
trustedProxies: getTrustProxies('TRUSTED_PROXIES'),
surveyUrl: getUrl('SURVEY_URL', ''),
bugReportUrl: getUrl('BUG_REPORT_URL', ''),
testing: {
enabled: process.env.TESTING === 'true',
username: get('TESTING_USERNAME', ''),
password: get('TESTING_PASSWORD', ''),
},
}
config.baseUrl = get('BASE_URL', `http://${config.host}:${config.port}`)
config.testing = {
enabled: !config.isProduction && process.env.TESTING === 'true',
username: get('TESTING_USERNAME', ''),
password: get('TESTING_PASSWORD', ''),
}
export default config
+11 -3
View File
@@ -1,16 +1,24 @@
import rateLimit from 'express-rate-limit'
import config from '../config.js'
export const globalRateLimit = rateLimit({
function createRateLimiter(options) {
if (config.testing.enabled) {
return (req, res, next) => next()
}
return rateLimit(options)
}
export const globalRateLimit = createRateLimiter({
windowMs: 60 * 1000, // 1 minute
max: 100,
})
export const authenticateRateLimit = rateLimit({
export const authenticateRateLimit = createRateLimiter({
windowMs: 2 * 60 * 1000,
max: 5,
})
export const sessionRateLimit = rateLimit({
export const sessionRateLimit = createRateLimiter({
windowMs: 10 * 1000,
max: 1,
keyGenerator: (req) => {