chore: Test performance (#5786)

This commit is contained in:
Tom Moor
2023-09-06 17:19:21 -04:00
committed by GitHub
parent 3eb947e9a5
commit ec0564eb32
69 changed files with 449 additions and 617 deletions

View File

@@ -129,7 +129,7 @@ export function buildTeam(overrides: Record<string, any> = {}) {
authenticationProviders: [
{
name: "slack",
providerId: uuidv4(),
providerId: uuidv4().replace(/-/g, ""),
},
],
...overrides,
@@ -188,7 +188,7 @@ export async function buildUser(overrides: Partial<User> = {}) {
authentications: [
{
authenticationProviderId: authenticationProvider!.id,
providerId: uuidv4(),
providerId: uuidv4().replace(/-/g, ""),
},
],
...overrides,

View File

@@ -0,0 +1,15 @@
import "./env";
import { sequelize } from "@server/storage/database";
module.exports = async function () {
const sql = sequelize.getQueryInterface();
const tables = Object.keys(sequelize.models).map((model) => {
const n = sequelize.models[model].getTableName();
return (sql.queryGenerator as any).quoteTable(
typeof n === "string" ? n : n.tableName
);
});
const flushQuery = `TRUNCATE ${tables.join(", ")} CASCADE`;
await sequelize.query(flushQuery);
};

View File

@@ -0,0 +1,5 @@
import { sequelize } from "@server/storage/database";
module.exports = async function () {
await sequelize.close();
};

View File

@@ -1,7 +1,5 @@
import Redis from "@server/storage/redis";
// NOTE: this require must come after the ENV var override
// so that sequelize uses the test config variables
require("@server/storage/database");
jest.mock("bull");

View File

@@ -17,35 +17,10 @@ export function getTestServer() {
server.close();
};
setupTestDatabase();
afterAll(server.disconnect);
return server;
}
export function setupTestDatabase() {
const flush = async () => {
const sql = sequelize.getQueryInterface();
const tables = Object.keys(sequelize.models).map((model) => {
const n = sequelize.models[model].getTableName();
return (sql.queryGenerator as any).quoteTable(
typeof n === "string" ? n : n.tableName
);
});
const flushQuery = `TRUNCATE ${tables.join(", ")} CASCADE`;
await sequelize.query(flushQuery);
};
const disconnect = async () => {
await sequelize.close();
};
beforeAll(flush);
afterAll(disconnect);
}
/**
* Set the environment to be cloud hosted
*/