ci(core): Avoid slow bcrypt calls in tests (no-changelog) (#8570)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™ 2024-02-07 17:56:02 +01:00 committed by GitHub
parent b79d6749d5
commit 40eee3aa49
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 8 deletions

View file

@ -1,18 +1,17 @@
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
import { Service as Utility } from 'typedi';
import { compare, genSaltSync, hash } from 'bcryptjs';
import { compare, hash } from 'bcryptjs';
import {
MAX_PASSWORD_CHAR_LENGTH as maxLength,
MIN_PASSWORD_CHAR_LENGTH as minLength,
} from '@/constants';
const SALT_ROUNDS = 10;
@Utility()
export class PasswordUtility {
async hash(plaintext: string) {
const SALT_ROUNDS = 10;
const salt = genSaltSync(SALT_ROUNDS);
return await hash(plaintext, salt);
return await hash(plaintext, SALT_ROUNDS);
}
async compare(plaintext: string, hashed: string) {

View file

@ -47,7 +47,7 @@ const testServer = utils.setupTestServer({
});
beforeAll(async () => {
owner = await createUser({ role: 'global:owner', password: 'password' });
owner = await createUser({ role: 'global:owner' });
authOwnerAgent = testServer.authAgentFor(owner);
defaultLdapConfig.bindingAdminPassword = Container.get(Cipher).encrypt(

View file

@ -9,6 +9,9 @@ import { MfaService } from '@/Mfa/mfa.service';
import { randomApiKey, randomEmail, randomName, randomValidPassword } from '../random';
// pre-computed bcrypt hash for the string 'password', using `await hash('password', 10)`
const passwordHash = '$2a$10$njedH7S6V5898mj6p0Jr..IGY9Ms.qNwR7RbSzzX9yubJocKfvGGK';
/**
* Store a user in the DB, defaulting to a `member`.
*/
@ -16,7 +19,7 @@ export async function createUser(attributes: Partial<User> = {}): Promise<User>
const { email, password, firstName, lastName, role, ...rest } = attributes;
const user = Container.get(UserRepository).create({
email: email ?? randomEmail(),
password: await hash(password ?? randomValidPassword(), 10),
password: password ? await hash(password, 1) : passwordHash,
firstName: firstName ?? randomName(),
lastName: lastName ?? randomName(),
role: role ?? 'global:member',
@ -101,7 +104,7 @@ export async function createManyUsers(
[...Array(amount)].map(async () =>
Container.get(UserRepository).create({
email: email ?? randomEmail(),
password: await hash(password ?? randomValidPassword(), 10),
password: password ? await hash(password, 1) : passwordHash,
firstName: firstName ?? randomName(),
lastName: lastName ?? randomName(),
role: role ?? 'global:member',