Files
colanode/apps/server/test/setup-env.ts

47 lines
1.0 KiB
TypeScript

import fs from 'node:fs';
import os from 'node:os';
import path from 'node:path';
import { afterAll, beforeAll } from 'vitest';
type TestEnvConfig = {
POSTGRES_URL: string;
REDIS_URL: string;
CONFIG: string;
NODE_ENV: string;
};
const ENV_PATH = path.join(os.tmpdir(), 'colanode-test-env.json');
if (!fs.existsSync(ENV_PATH)) {
throw new Error(`Test env file not found at ${ENV_PATH}`);
}
const envConfig = JSON.parse(
fs.readFileSync(ENV_PATH, 'utf-8')
) as TestEnvConfig;
Object.assign(process.env, envConfig);
let redis: typeof import('../src/data/redis').redis | null = null;
let database: typeof import('../src/data/database').database | null = null;
beforeAll(async () => {
const redisModule = await import('../src/data/redis');
await redisModule.initRedis();
redis = redisModule.redis;
const dbModule = await import('../src/data/database');
database = dbModule.database;
});
afterAll(async () => {
if (redis) {
await redis.quit();
}
if (database) {
await database.destroy();
}
});