Skip to content

Commit 831d64b

Browse files
committed
run tests in parallel
1 parent 70eb521 commit 831d64b

3 files changed

Lines changed: 36 additions & 28 deletions

File tree

backend/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"start:prod": "node dist/main",
2424
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
2525
"test": "ava test/ava-tests/non-saas-tests/* --serial",
26-
"test-all": "ava --timeout=5m --serial",
26+
"test-all": "ava --timeout=5m",
2727
"test-saas": "ava test/ava-tests/saas-tests/* ",
2828
"typeorm": "ts-node -r tsconfig-paths/register ../node_modules/.bin/typeorm",
2929
"migration:generate": "yarn run typeorm migration:generate -d dist/src/shared/config/datasource.config.js",

backend/test/ava-tests/non-saas-tests/non-saas-connection-e2e.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,7 @@ test.serial(`${currentTest} should throw error when update connection without da
870870
.set('Content-Type', 'application/json')
871871
.set('Cookie', token)
872872
.set('Accept', 'application/json');
873+
t.is(createConnectionResponse.status, 201, createConnectionResponse.text);
873874
const createConnectionRO = JSON.parse(createConnectionResponse.text);
874875

875876
delete updateConnection.database;

backend/test/utils/register-user-and-return-user-info.ts

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,53 @@
22
import { faker } from '@faker-js/faker';
33
import { INestApplication } from '@nestjs/common';
44
import request from 'supertest';
5+
import { DataSource } from 'typeorm';
56
import { Constants } from '../../src/helpers/constants/constants.js';
67
import { TestUtils } from './test.utils.js';
78
import { isSaaS } from '../../src/helpers/app/is-saas.js';
89
import { InvitedUserInCompanyAndConnectionGroupDs } from '../../src/entities/company-info/application/data-structures/invited-user-in-company-and-connection-group.ds.js';
10+
import { BaseType } from '../../src/common/data-injection.tokens.js';
11+
import { UserEntity } from '../../src/entities/user/user.entity.js';
12+
import { CompanyInfoEntity } from '../../src/entities/company-info/company-info.entity.js';
13+
import { generateGwtToken } from '../../src/entities/user/utils/generate-gwt-token.js';
14+
import { UserRoleEnum } from '../../src/entities/user/enums/user-role.enum.js';
915

1016
// eslint-disable-next-line @typescript-eslint/no-unused-vars
1117
export async function registerUserAndReturnUserInfo(app: INestApplication): Promise<{
1218
token: string;
1319
email: string;
1420
password: string;
1521
}> {
16-
if (!isSaaS()) {
17-
return await loginTestAdminUserAndReturnInfo(app);
18-
}
19-
// return await registerUserOnCoreAndReturnUserInfo(app);
20-
return await registerUserOnSaasAndReturnUserInfo();
21-
}
22-
23-
async function loginTestAdminUserAndReturnInfo(app: INestApplication): Promise<{
24-
token: string;
25-
email: string;
26-
password: string;
27-
}> {
28-
const userLoginInfo = {
29-
email: 'admin@email.local',
30-
password: 'test12345',
31-
};
32-
const loginAdminUserResponse = await request(app.getHttpServer())
33-
.post('/user/login/')
34-
.send(userLoginInfo)
35-
.set('Content-Type', 'application/json')
36-
.set('Accept', 'application/json');
22+
const dataSource = app.get<DataSource>(BaseType.DATA_SOURCE);
23+
const userRepository = dataSource.getRepository(UserEntity);
24+
const companyRepository = dataSource.getRepository(CompanyInfoEntity);
25+
26+
const email = `${faker.lorem.words(1)}_${faker.lorem.words(1)}_${faker.internet.email()}`.toLowerCase();
27+
const password = `#r@dY^e&7R4b5Ib@31iE4xbn`;
28+
const companyName = `${faker.lorem.words(1)}_${faker.lorem.words(1)}_${faker.lorem.words(1)}_${faker.company.name()}`;
29+
30+
// Create company
31+
const company = companyRepository.create({
32+
id: faker.string.uuid(),
33+
name: companyName,
34+
});
35+
const savedCompany = await companyRepository.save(company);
36+
37+
// Create user
38+
const user = userRepository.create({
39+
email,
40+
password,
41+
isActive: true,
42+
company: savedCompany,
43+
role: UserRoleEnum.ADMIN,
44+
});
45+
const savedUser = await userRepository.save(user);
3746

38-
const loginAdminUserResponseJson = JSON.parse(loginAdminUserResponse.text);
39-
if (loginAdminUserResponse.status > 201) {
40-
console.info('loginAdminUserResponseJson.text -> ', loginAdminUserResponseJson);
41-
}
47+
// Generate JWT token
48+
const tokenData = generateGwtToken(savedUser, []);
49+
const token = `${Constants.JWT_COOKIE_KEY_NAME}=${tokenData.token}`;
4250

43-
const token = `${Constants.JWT_COOKIE_KEY_NAME}=${TestUtils.getJwtTokenFromResponse(loginAdminUserResponse)}`;
44-
return { token: token, ...userLoginInfo };
51+
return { token, email, password };
4552
}
4653

4754
export async function registerUserOnSaasAndReturnUserInfo(

0 commit comments

Comments
 (0)