chore: refactor server test setup (#3976)
* chore: refactor server test setup * Close dangling redis connections instead of mocking rate limiter specific modules * Segregate pre and post env test setup * fix: remove mock file
This commit is contained in:
@@ -12,6 +12,9 @@
|
||||
},
|
||||
"setupFiles": [
|
||||
"<rootDir>/__mocks__/console.js",
|
||||
"<rootDir>/server/test/env.ts"
|
||||
],
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/server/test/setup.ts"
|
||||
],
|
||||
"testEnvironment": "node",
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
export default class MockRateLimiter {
|
||||
static getRateLimiter() {
|
||||
return {
|
||||
points: 100,
|
||||
consume: jest.fn(),
|
||||
};
|
||||
}
|
||||
|
||||
static setRateLimiter() {
|
||||
//
|
||||
}
|
||||
|
||||
static hasRateLimiter() {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export const RateLimiterStrategy = new Proxy(
|
||||
{},
|
||||
{
|
||||
get() {
|
||||
return {
|
||||
duration: 60,
|
||||
requests: 10,
|
||||
};
|
||||
},
|
||||
}
|
||||
);
|
||||
14
server/test/env.ts
Normal file
14
server/test/env.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import env from "../env";
|
||||
|
||||
// test environment variables
|
||||
env.SMTP_HOST = "smtp.example.com";
|
||||
env.ENVIRONMENT = "test";
|
||||
env.GOOGLE_CLIENT_ID = "123";
|
||||
env.GOOGLE_CLIENT_SECRET = "123";
|
||||
env.SLACK_CLIENT_ID = "123";
|
||||
env.SLACK_CLIENT_SECRET = "123";
|
||||
env.DEPLOYMENT = undefined;
|
||||
|
||||
if (process.env.DATABASE_URL_TEST) {
|
||||
env.DATABASE_URL = process.env.DATABASE_URL_TEST;
|
||||
}
|
||||
@@ -1,25 +1,10 @@
|
||||
import env from "../env";
|
||||
import Redis from "@server/redis";
|
||||
|
||||
// test environment variables
|
||||
env.SMTP_HOST = "smtp.example.com";
|
||||
env.ENVIRONMENT = "test";
|
||||
env.GOOGLE_CLIENT_ID = "123";
|
||||
env.GOOGLE_CLIENT_SECRET = "123";
|
||||
env.SLACK_CLIENT_ID = "123";
|
||||
env.SLACK_CLIENT_SECRET = "123";
|
||||
env.DEPLOYMENT = undefined;
|
||||
|
||||
if (process.env.DATABASE_URL_TEST) {
|
||||
env.DATABASE_URL = process.env.DATABASE_URL_TEST;
|
||||
}
|
||||
|
||||
// NOTE: this require must come after the ENV var override above
|
||||
// NOTE: this require must come after the ENV var override
|
||||
// so that sequelize uses the test config variables
|
||||
require("@server/database/sequelize");
|
||||
|
||||
jest.mock("bull");
|
||||
jest.mock("rate-limiter-flexible");
|
||||
jest.mock("../RateLimiter");
|
||||
|
||||
// This is needed for the relative manual mock to be picked up
|
||||
jest.mock("../queues");
|
||||
@@ -42,3 +27,5 @@ jest.mock("aws-sdk", () => {
|
||||
});
|
||||
|
||||
jest.mock("@getoutline/y-prosemirror", () => ({}));
|
||||
|
||||
afterAll(() => Redis.defaultClient.disconnect());
|
||||
|
||||
Reference in New Issue
Block a user