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": [
|
"setupFiles": [
|
||||||
"<rootDir>/__mocks__/console.js",
|
"<rootDir>/__mocks__/console.js",
|
||||||
|
"<rootDir>/server/test/env.ts"
|
||||||
|
],
|
||||||
|
"setupFilesAfterEnv": [
|
||||||
"<rootDir>/server/test/setup.ts"
|
"<rootDir>/server/test/setup.ts"
|
||||||
],
|
],
|
||||||
"testEnvironment": "node",
|
"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
|
// NOTE: this require must come after the ENV var override
|
||||||
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
|
|
||||||
// so that sequelize uses the test config variables
|
// so that sequelize uses the test config variables
|
||||||
require("@server/database/sequelize");
|
require("@server/database/sequelize");
|
||||||
|
|
||||||
jest.mock("bull");
|
jest.mock("bull");
|
||||||
jest.mock("rate-limiter-flexible");
|
|
||||||
jest.mock("../RateLimiter");
|
|
||||||
|
|
||||||
// This is needed for the relative manual mock to be picked up
|
// This is needed for the relative manual mock to be picked up
|
||||||
jest.mock("../queues");
|
jest.mock("../queues");
|
||||||
@@ -42,3 +27,5 @@ jest.mock("aws-sdk", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
jest.mock("@getoutline/y-prosemirror", () => ({}));
|
jest.mock("@getoutline/y-prosemirror", () => ({}));
|
||||||
|
|
||||||
|
afterAll(() => Redis.defaultClient.disconnect());
|
||||||
|
|||||||
Reference in New Issue
Block a user