mirror of
https://github.com/colanode/colanode.git
synced 2026-02-24 11:59:53 +01:00
47 lines
1.0 KiB
TypeScript
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();
|
|
}
|
|
});
|