mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-08 04:27:09 +03:00
reset postgres and redis between test runs
This commit is contained in:
@@ -10,6 +10,7 @@ import { ImportMock } from "ts-mock-imports";
|
|||||||
import * as rateLimitMiddlewareModule from "../src/middleware/requestRateLimit";
|
import * as rateLimitMiddlewareModule from "../src/middleware/requestRateLimit";
|
||||||
import rateLimit from "express-rate-limit";
|
import rateLimit from "express-rate-limit";
|
||||||
import redis from "../src/utils/redis";
|
import redis from "../src/utils/redis";
|
||||||
|
import { resetRedis, resetPostgres } from "./utils/reset";
|
||||||
|
|
||||||
async function init() {
|
async function init() {
|
||||||
ImportMock.mockFunction(rateLimitMiddlewareModule, "rateLimitMiddleware", rateLimit({
|
ImportMock.mockFunction(rateLimitMiddlewareModule, "rateLimitMiddleware", rateLimit({
|
||||||
@@ -19,6 +20,8 @@ async function init() {
|
|||||||
// delete old test database
|
// delete old test database
|
||||||
if (fs.existsSync(config.db)) fs.unlinkSync(config.db);
|
if (fs.existsSync(config.db)) fs.unlinkSync(config.db);
|
||||||
if (fs.existsSync(config.privateDB)) fs.unlinkSync(config.privateDB);
|
if (fs.existsSync(config.privateDB)) fs.unlinkSync(config.privateDB);
|
||||||
|
await resetRedis();
|
||||||
|
await resetPostgres();
|
||||||
|
|
||||||
await initDb();
|
await initDb();
|
||||||
|
|
||||||
@@ -59,6 +62,7 @@ async function init() {
|
|||||||
server.close();
|
server.close();
|
||||||
redis.quit();
|
redis.quit();
|
||||||
process.exitCode = failures ? 1 : 0; // exit with non-zero status if there were failures
|
process.exitCode = failures ? 1 : 0; // exit with non-zero status if there were failures
|
||||||
|
process.exit();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
22
test/utils/reset.ts
Normal file
22
test/utils/reset.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// drop postgres tables
|
||||||
|
// reset redis cache
|
||||||
|
import { config } from "../../src/config";
|
||||||
|
import { createClient } from "redis";
|
||||||
|
import { Pool } from "pg";
|
||||||
|
import { Logger } from "../../src/utils/logger";
|
||||||
|
|
||||||
|
export async function resetRedis() {
|
||||||
|
if (config.redis) {
|
||||||
|
const client = createClient(config.redis);
|
||||||
|
await client.connect();
|
||||||
|
await client.flushAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export async function resetPostgres() {
|
||||||
|
if (process.env.TEST_POSTGRES && config.postgres) {
|
||||||
|
const pool = new Pool({ ...config.postgres });
|
||||||
|
await pool.query(`DROP DATABASE IF EXISTS "sponsorTimes"`);
|
||||||
|
await pool.query(`DROP DATABASE IF EXISTS "privateDB"`);
|
||||||
|
await pool.end().catch(err => Logger.error(`closing db (postgres): ${err}`));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user