Files
overleaf-cep/services/web/app/src/infrastructure/RedisWrapper.js
T
Eric Mc Sween 8f0913fafe Merge pull request #27936 from overleaf/em-unit-tests-mongo
Make Mongo available to unit tests in all services

GitOrigin-RevId: b65bbb69883d5bba31d09802b89f35bdc523fe4d
2025-08-25 08:05:19 +00:00

27 lines
861 B
JavaScript

const Settings = require('@overleaf/settings')
const redis = require('@overleaf/redis-wrapper')
const { addConnectionDrainer } = require('./GracefulShutdown')
/**
* A per-feature interface to Redis, looks up the feature in `settings.redis`
* and returns an appropriate client. Necessary because we don't want to
* migrate web over to redis-cluster all at once.
*
* @param feature - one of 'websessions' | 'ratelimiter' | ...
*/
function client(feature) {
const redisFeatureSettings = Settings.redis[feature] || Settings.redis.web
const client = redis.createClient(redisFeatureSettings)
addConnectionDrainer(`redis ${feature}`, async () => {
await client.disconnect()
})
return client
}
async function cleanupTestRedis() {
const rclient = client()
await redis.cleanupTestRedis(rclient)
}
module.exports = { client, cleanupTestRedis }