ci(core): Reduce memory usage in tests (part-2) (no-changelog) (#7671)

This also gets rid of `Db.collection`, which was another source of
circular dependencies.
This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2023-11-10 15:04:26 +01:00
committed by GitHub
parent 37dd658dc5
commit 000e76e3b4
174 changed files with 892 additions and 808 deletions

View File

@@ -1,7 +1,6 @@
import type { SuperAgentTest } from 'supertest';
import { IsNull } from 'typeorm';
import validator from 'validator';
import * as Db from '@/Db';
import type { Role } from '@db/entities/Role';
import type { User } from '@db/entities/User';
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
@@ -16,6 +15,8 @@ import * as testDb from './shared/testDb';
import * as utils from './shared/utils/';
import { getGlobalMemberRole, getGlobalOwnerRole } from './shared/db/roles';
import { addApiKey, createUser, createUserShell } from './shared/db/users';
import Container from 'typedi';
import { UserRepository } from '@db/repositories/user.repository';
const testServer = utils.setupTestServer({ endpointGroups: ['me'] });
@@ -70,7 +71,7 @@ describe('Owner shell', () => {
expect(globalRole.scope).toBe('global');
expect(apiKey).toBeUndefined();
const storedOwnerShell = await Db.collections.User.findOneByOrFail({ id });
const storedOwnerShell = await Container.get(UserRepository).findOneByOrFail({ id });
expect(storedOwnerShell.email).toBe(validPayload.email.toLowerCase());
expect(storedOwnerShell.firstName).toBe(validPayload.firstName);
@@ -83,7 +84,7 @@ describe('Owner shell', () => {
const response = await authOwnerShellAgent.patch('/me').send(invalidPayload);
expect(response.statusCode).toBe(400);
const storedOwnerShell = await Db.collections.User.findOneByOrFail({});
const storedOwnerShell = await Container.get(UserRepository).findOneByOrFail({});
expect(storedOwnerShell.email).toBeNull();
expect(storedOwnerShell.firstName).toBeNull();
expect(storedOwnerShell.lastName).toBeNull();
@@ -102,7 +103,7 @@ describe('Owner shell', () => {
const response = await authOwnerShellAgent.patch('/me/password').send(payload);
expect([400, 500].includes(response.statusCode)).toBe(true);
const storedMember = await Db.collections.User.findOneByOrFail({});
const storedMember = await Container.get(UserRepository).findOneByOrFail({});
if (payload.newPassword) {
expect(storedMember.password).not.toBe(payload.newPassword);
@@ -113,7 +114,7 @@ describe('Owner shell', () => {
}
}
const storedOwnerShell = await Db.collections.User.findOneByOrFail({});
const storedOwnerShell = await Container.get(UserRepository).findOneByOrFail({});
expect(storedOwnerShell.password).toBeNull();
});
@@ -126,7 +127,7 @@ describe('Owner shell', () => {
expect(response.statusCode).toBe(200);
expect(response.body).toEqual(SUCCESS_RESPONSE_BODY);
const storedShellOwner = await Db.collections.User.findOneOrFail({
const storedShellOwner = await Container.get(UserRepository).findOneOrFail({
where: { email: IsNull() },
});
@@ -141,7 +142,7 @@ describe('Owner shell', () => {
expect(response.body.data.apiKey).toBeDefined();
expect(response.body.data.apiKey).not.toBeNull();
const storedShellOwner = await Db.collections.User.findOneOrFail({
const storedShellOwner = await Container.get(UserRepository).findOneOrFail({
where: { email: IsNull() },
});
@@ -160,7 +161,7 @@ describe('Owner shell', () => {
expect(response.statusCode).toBe(200);
const storedShellOwner = await Db.collections.User.findOneOrFail({
const storedShellOwner = await Container.get(UserRepository).findOneOrFail({
where: { email: IsNull() },
});
@@ -213,7 +214,7 @@ describe('Member', () => {
expect(globalRole.scope).toBe('global');
expect(apiKey).toBeUndefined();
const storedMember = await Db.collections.User.findOneByOrFail({ id });
const storedMember = await Container.get(UserRepository).findOneByOrFail({ id });
expect(storedMember.email).toBe(validPayload.email.toLowerCase());
expect(storedMember.firstName).toBe(validPayload.firstName);
@@ -226,7 +227,7 @@ describe('Member', () => {
const response = await authMemberAgent.patch('/me').send(invalidPayload);
expect(response.statusCode).toBe(400);
const storedMember = await Db.collections.User.findOneByOrFail({});
const storedMember = await Container.get(UserRepository).findOneByOrFail({});
expect(storedMember.email).toBe(member.email);
expect(storedMember.firstName).toBe(member.firstName);
expect(storedMember.lastName).toBe(member.lastName);
@@ -243,7 +244,7 @@ describe('Member', () => {
expect(response.statusCode).toBe(200);
expect(response.body).toEqual(SUCCESS_RESPONSE_BODY);
const storedMember = await Db.collections.User.findOneByOrFail({});
const storedMember = await Container.get(UserRepository).findOneByOrFail({});
expect(storedMember.password).not.toBe(member.password);
expect(storedMember.password).not.toBe(validPayload.newPassword);
});
@@ -253,7 +254,7 @@ describe('Member', () => {
const response = await authMemberAgent.patch('/me/password').send(payload);
expect([400, 500].includes(response.statusCode)).toBe(true);
const storedMember = await Db.collections.User.findOneByOrFail({});
const storedMember = await Container.get(UserRepository).findOneByOrFail({});
if (payload.newPassword) {
expect(storedMember.password).not.toBe(payload.newPassword);
@@ -272,9 +273,9 @@ describe('Member', () => {
expect(response.statusCode).toBe(200);
expect(response.body).toEqual(SUCCESS_RESPONSE_BODY);
const { personalizationAnswers: storedAnswers } = await Db.collections.User.findOneByOrFail(
{},
);
const { personalizationAnswers: storedAnswers } = await Container.get(
UserRepository,
).findOneByOrFail({});
expect(storedAnswers).toEqual(validPayload);
}
@@ -287,7 +288,7 @@ describe('Member', () => {
expect(response.body.data.apiKey).toBeDefined();
expect(response.body.data.apiKey).not.toBeNull();
const storedMember = await Db.collections.User.findOneByOrFail({ id: member.id });
const storedMember = await Container.get(UserRepository).findOneByOrFail({ id: member.id });
expect(storedMember.apiKey).toEqual(response.body.data.apiKey);
});
@@ -304,7 +305,7 @@ describe('Member', () => {
expect(response.statusCode).toBe(200);
const storedMember = await Db.collections.User.findOneByOrFail({ id: member.id });
const storedMember = await Container.get(UserRepository).findOneByOrFail({ id: member.id });
expect(storedMember.apiKey).toBeNull();
});
@@ -347,7 +348,7 @@ describe('Owner', () => {
expect(globalRole.scope).toBe('global');
expect(apiKey).toBeUndefined();
const storedOwner = await Db.collections.User.findOneByOrFail({ id });
const storedOwner = await Container.get(UserRepository).findOneByOrFail({ id });
expect(storedOwner.email).toBe(validPayload.email.toLowerCase());
expect(storedOwner.firstName).toBe(validPayload.firstName);