fix tests

This commit is contained in:
Hongbo Wu
2024-01-18 21:13:32 +08:00
parent d4f49dceb6
commit 3e291d1019
3 changed files with 22 additions and 7 deletions

View File

@ -6,14 +6,9 @@ import { env } from '../env'
const signToken = promisify(jwt.sign)
const IMPORTER_METRICS_COLLECTOR_URL =
process.env.IMPORTER_METRICS_COLLECTOR_URL
const IMPORTER_METRICS_COLLECTOR_URL = env.queue.importerMetricsUrl
const JWT_SECRET = env.server.jwtSecret
const REST_BACKEND_ENDPOINT = process.env.INTERNAL_API_URL
if (!IMPORTER_METRICS_COLLECTOR_URL || !REST_BACKEND_ENDPOINT) {
throw new Error('Missing environment variables')
}
const REST_BACKEND_ENDPOINT = env.server.internalApiUrl
const REQUEST_TIMEOUT = 30000 // 30 seconds

View File

@ -22,6 +22,7 @@ export interface BackendEnv {
apiEnv: string
instanceId: string
trustProxy: boolean
internalApiUrl: string
}
client: {
url: string
@ -70,6 +71,7 @@ export interface BackendEnv {
rssFeedTaskHandlerUrl: string
integrationExporterUrl: string
integrationImporterUrl: string
importerMetricsUrl: string
}
fileUpload: {
gcsUploadBucket: string
@ -156,6 +158,8 @@ const nullableEnvVars = [
'SUBSCRIPTION_FEED_MAX',
'REDIS_URL',
'REDIS_CERT',
'IMPORTER_METRICS_COLLECTOR_URL',
'INTERNAL_API_URL',
] // Allow some vars to be null/empty
/* If not in GAE and Prod/QA/Demo env (f.e. on localhost/dev env), allow following env vars to be null */
@ -204,6 +208,7 @@ export function getEnv(): BackendEnv {
instanceId:
parse('GAE_INSTANCE') || `x${os.userInfo().username}_${os.hostname()}`,
trustProxy: parse('TRUST_PROXY') === 'true',
internalApiUrl: parse('INTERNAL_API_URL'),
}
const client = {
url: parse('CLIENT_URL'),
@ -245,6 +250,7 @@ export function getEnv(): BackendEnv {
rssFeedTaskHandlerUrl: parse('RSS_FEED_TASK_HANDLER_URL'),
integrationExporterUrl: parse('INTEGRATION_EXPORTER_URL'),
integrationImporterUrl: parse('INTEGRATION_IMPORTER_URL'),
importerMetricsUrl: parse('IMPORTER_METRICS_COLLECTOR_URL'),
}
const imageProxy = {
url: parse('IMAGE_PROXY_URL'),

View File

@ -1,3 +1,4 @@
/* eslint-disable @typescript-eslint/no-misused-promises */
import { Redis } from 'ioredis'
const url = process.env.REDIS_URL
@ -22,3 +23,16 @@ redis.on('connect', () => {
redis.on('error', (err) => {
console.error('Redis error', err)
})
redis.on('close', () => {
console.log('Redis connection closed')
})
export const gracefulShutdown = async (signal: string) => {
console.log(`Received ${signal}, closing server...`)
await redis.quit()
process.exit(0)
}
process.on('SIGINT', () => gracefulShutdown('SIGINT'))
process.on('SIGTERM', () => gracefulShutdown('SIGTERM'))