@getjones/test-infra 2.2.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/env.js +13 -1
- package/src/saas/internal-api/accounts/consts/consts.js +6 -0
- package/src/saas/internal-api/accounts/index.js +2 -1
- package/src/saas/internal-api/accounts/models/core/create.account.model.js +10 -9
- package/src/saas/internal-api/auth/api/auth.service.js +10 -18
- package/src/saas/internal-api/compliance/api/audit/audit.api.js +0 -1
- package/src/saas/internal-api/compliance/utils/util.js +4 -2
- package/src/saas/internal-api/requirements/api/requirements.api.js +5 -4
- package/src/saas/internal-api/requirements/api/requirements.service.js +11 -11
- package/src/saas/internal-api/requirements/consts/consts.js +6 -0
- package/src/saas/internal-api/requirements/models/create.requirement.model.js +24 -24
- package/src/saas/internal-api/requirements/utils/utils.js +7 -4
package/package.json
CHANGED
package/src/env.js
CHANGED
|
@@ -37,9 +37,21 @@ const isLocalhost = () => {
|
|
|
37
37
|
return privateMembers.backendUrl.includes('localhost');
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
+
const systemUserIdentities = {};
|
|
41
|
+
|
|
42
|
+
const getSystemUserIdentity = email => {
|
|
43
|
+
return systemUserIdentities[email] || null;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const addUserIdentity = (email, cookie, id) => {
|
|
47
|
+
systemUserIdentities[email] = { cookie, id };
|
|
48
|
+
};
|
|
49
|
+
|
|
40
50
|
module.exports = {
|
|
41
51
|
init,
|
|
42
52
|
getEnv: () => privateMembers,
|
|
43
53
|
requiredValidation,
|
|
44
|
-
isLocalhost
|
|
54
|
+
isLocalhost,
|
|
55
|
+
getSystemUserIdentity,
|
|
56
|
+
addUserIdentity
|
|
45
57
|
};
|
|
@@ -6,6 +6,7 @@ const settingsModels = { UpdateAccountSettingsModel };
|
|
|
6
6
|
|
|
7
7
|
const models = { core: coreModels, settings: settingsModels };
|
|
8
8
|
const utils = require('./utils/utils');
|
|
9
|
+
const consts = require('./consts/consts');
|
|
9
10
|
|
|
10
11
|
const coreService = require('./api/core/accounts.core.service');
|
|
11
12
|
const openApiServices = require('./api/openapi/accounts.openapi.service');
|
|
@@ -17,4 +18,4 @@ const services = {
|
|
|
17
18
|
settings: settingsServices
|
|
18
19
|
};
|
|
19
20
|
|
|
20
|
-
module.exports = { services, models, utils };
|
|
21
|
+
module.exports = { services, models, utils, consts };
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
const env = require('../../../../../env');
|
|
2
2
|
const { credentials, accountCreationSecret } = env.getEnv();
|
|
3
|
-
const
|
|
3
|
+
const { ACCOUNT_TYPES } = require('../../consts/consts');
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
5
|
+
class CreateAccountModel {
|
|
6
|
+
constructor(accountName, email, password = credentials.strongPassword, propertyType = ACCOUNT_TYPES.PROPERTY) {
|
|
7
|
+
this.companyName = accountName;
|
|
8
|
+
this.email = email;
|
|
9
|
+
this.password = password;
|
|
10
|
+
this.verifyPassword = password;
|
|
11
|
+
this.userType = propertyType;
|
|
12
|
+
this.secret = accountCreationSecret;
|
|
13
|
+
}
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
module.exports = CreateAccountModel;
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
const { getEnv, requiredValidation } = require('../../../../env');
|
|
1
|
+
const { getEnv, requiredValidation, getSystemUserIdentity, addUserIdentity } = require('../../../../env');
|
|
2
2
|
const { credentials } = getEnv();
|
|
3
3
|
const authApi = require('./auth.api');
|
|
4
4
|
|
|
5
5
|
const getAuthCookie = async (email, password) => {
|
|
6
|
+
const systemUser = getSystemUserIdentity(email);
|
|
7
|
+
|
|
8
|
+
if (systemUser) {
|
|
9
|
+
return systemUser.cookie;
|
|
10
|
+
}
|
|
11
|
+
|
|
6
12
|
try {
|
|
7
13
|
const response = await authApi.login(email, password);
|
|
8
14
|
const authCookie = response.headers['set-cookie'].find(item => item.startsWith('JonesToken='));
|
|
9
15
|
|
|
16
|
+
addUserIdentity(email, authCookie, response.data.id);
|
|
17
|
+
|
|
10
18
|
return authCookie;
|
|
11
19
|
} catch (error) {
|
|
12
20
|
throw new Error(`Failed to login to email:${email}`, error);
|
|
@@ -50,26 +58,10 @@ const getOperatorCookie = () => {
|
|
|
50
58
|
return getAuthCookie(operatorUser, operatorPassword);
|
|
51
59
|
};
|
|
52
60
|
|
|
53
|
-
const getAuditorId = async () => {
|
|
54
|
-
const { auditorUser, auditorPassword } = credentials;
|
|
55
|
-
requiredValidation({
|
|
56
|
-
'credentials.auditorUser': auditorUser,
|
|
57
|
-
'credentials.auditorPassword': auditorPassword
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
try {
|
|
61
|
-
const response = await authApi.login(auditorUser, auditorPassword);
|
|
62
|
-
return response.data.id;
|
|
63
|
-
} catch (error) {
|
|
64
|
-
throw new Error('Failed to get auditor id', error);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
|
|
68
61
|
module.exports = {
|
|
69
62
|
getAuthCookie,
|
|
70
63
|
getVendorHubAuthCookie,
|
|
71
64
|
getIcsCookie,
|
|
72
65
|
getAuditorCookie,
|
|
73
|
-
getOperatorCookie
|
|
74
|
-
getAuditorId
|
|
66
|
+
getOperatorCookie
|
|
75
67
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
const requests = require('../../../../../common/requests/cookieAuth/requests');
|
|
2
2
|
const { backendUrl } = require('../../../../../env').getEnv();
|
|
3
|
-
const { createAuditEntity } = require('../../utils/util');
|
|
4
3
|
|
|
5
4
|
const Endpoints = {
|
|
6
5
|
auditorContractorList: `${backendUrl}/saas/auditor/contractors`,
|
|
@@ -2,7 +2,8 @@ const { AUDIT_ENTITY_STATUSES, DEFAULT_POLICY_ID, VALID_SCORES } = require('../c
|
|
|
2
2
|
const { isObject, isArray } = require('../../../../common/utils/dataTypeUtils');
|
|
3
3
|
const timeUtils = require('../../../../common/utils/timeUtils');
|
|
4
4
|
const auditModels = require('../models/audit/audit.model');
|
|
5
|
-
const
|
|
5
|
+
const { getEnv, getSystemUserIdentity } = require('../../../../env');
|
|
6
|
+
const { credentials } = getEnv();
|
|
6
7
|
|
|
7
8
|
const emptyValue = '';
|
|
8
9
|
|
|
@@ -127,7 +128,8 @@ const createAuditEntity = (
|
|
|
127
128
|
};
|
|
128
129
|
|
|
129
130
|
const getAuditorId = () => {
|
|
130
|
-
|
|
131
|
+
const auditorIdentity = getSystemUserIdentity(credentials.auditorUser);
|
|
132
|
+
return auditorIdentity.id;
|
|
131
133
|
};
|
|
132
134
|
|
|
133
135
|
module.exports = {
|
|
@@ -8,16 +8,17 @@ const Endpoints = {
|
|
|
8
8
|
delete: requirementId => `${backendUrl}/saas/requirement/${requirementId}`
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
const createRequirement = (createRequirementModel, context) => {
|
|
12
|
-
|
|
11
|
+
const createRequirement = (createRequirementModel, tabId, context) => {
|
|
12
|
+
const params = { tabId };
|
|
13
|
+
return requests.postRequestHandler(Endpoints.create, createRequirementModel, context, {}, params);
|
|
13
14
|
};
|
|
14
15
|
|
|
15
16
|
const getRequirementsByTabId = (tabId, context) => {
|
|
16
17
|
return requests.getRequestHandler(Endpoints.getRequirementsByTabId, { tabId }, context);
|
|
17
18
|
};
|
|
18
19
|
|
|
19
|
-
const getRequirementById = (requirementId, context) => {
|
|
20
|
-
return requests.getRequestHandler(Endpoints.getRequirementById(requirementId), {}, context);
|
|
20
|
+
const getRequirementById = (requirementId, context, isPermanentLink = false) => {
|
|
21
|
+
return requests.getRequestHandler(Endpoints.getRequirementById(requirementId), { isPermanentLink }, context);
|
|
21
22
|
};
|
|
22
23
|
|
|
23
24
|
const deleteByRequirementId = (requirementId, context) => {
|
|
@@ -4,20 +4,20 @@ const requirementUtils = require('../utils/utils');
|
|
|
4
4
|
|
|
5
5
|
const { validateType } = require('../../../../common/validations/typeValidations');
|
|
6
6
|
|
|
7
|
-
const createRequirement = (createRequirementModel, context) => {
|
|
7
|
+
const createRequirement = (createRequirementModel, tabId, context) => {
|
|
8
8
|
validateType(createRequirementModel, CreateRequirementModel);
|
|
9
|
-
return requirementsAPI.createRequirement(createRequirementModel, context);
|
|
9
|
+
return requirementsAPI.createRequirement(createRequirementModel, tabId, context);
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
const getRequirementsByTabId = (tabId, context) => {
|
|
13
13
|
return requirementsAPI.getRequirementsByTabId(tabId, context);
|
|
14
14
|
};
|
|
15
15
|
|
|
16
|
-
const getRequirementById = (requirementId, context) => {
|
|
17
|
-
return requirementsAPI.getRequirementById(requirementId, context);
|
|
16
|
+
const getRequirementById = (requirementId, context, isPermanentLink = false) => {
|
|
17
|
+
return requirementsAPI.getRequirementById(requirementId, context, isPermanentLink);
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
const getRequirementByName = async (tabId, requirementName, context) => {
|
|
20
|
+
const getRequirementByName = async (tabId, requirementName, context, isPermanentLink = false) => {
|
|
21
21
|
const { data: requirementList } = await getRequirementsByTabId(tabId, context);
|
|
22
22
|
|
|
23
23
|
const requirement = requirementList.find(req => req.name === requirementName);
|
|
@@ -26,7 +26,7 @@ const getRequirementByName = async (tabId, requirementName, context) => {
|
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const requirementResponse = await getRequirementById(requirement.id, context);
|
|
29
|
+
const requirementResponse = await getRequirementById(requirement.id, context, isPermanentLink);
|
|
30
30
|
return requirementResponse.data.requirement;
|
|
31
31
|
};
|
|
32
32
|
|
|
@@ -35,12 +35,12 @@ const getRequirementIdByName = async (tabId, requirementName, context) => {
|
|
|
35
35
|
return requirement ? requirement.id : requirement;
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
-
const getOrCreateRequirement = async (
|
|
38
|
+
const getOrCreateRequirement = async (requirement, tabId, context) => {
|
|
39
39
|
let existingRequirement = await getRequirementByName(tabId, requirement.name, context);
|
|
40
40
|
|
|
41
41
|
if (!existingRequirement) {
|
|
42
|
-
const createRequirementModel = getCreateRequirementModel(requirement
|
|
43
|
-
await createRequirement(createRequirementModel, context);
|
|
42
|
+
const createRequirementModel = getCreateRequirementModel(requirement);
|
|
43
|
+
await createRequirement(createRequirementModel, tabId, context);
|
|
44
44
|
existingRequirement = await getRequirementByName(tabId, requirement.name, context);
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -56,8 +56,8 @@ const deleteRequirementByName = async (requirementName, tabId, context) => {
|
|
|
56
56
|
return deleteByRequirementId(requirementToDelete.id, context);
|
|
57
57
|
};
|
|
58
58
|
|
|
59
|
-
const getCreateRequirementModel =
|
|
60
|
-
return requirementUtils.getCreateRequirementModel(
|
|
59
|
+
const getCreateRequirementModel = requirement => {
|
|
60
|
+
return requirementUtils.getCreateRequirementModel(requirement);
|
|
61
61
|
};
|
|
62
62
|
|
|
63
63
|
module.exports = {
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
const Enum = require('enum');
|
|
2
2
|
const { validateType } = require('../../../../common/validations/typeValidations');
|
|
3
|
+
const { REQUIREMENT_SHARING_LEVELS } = require('../consts/consts');
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
class CreateRequirementModel {
|
|
6
|
+
constructor(name, policies, sharingLevel = REQUIREMENT_SHARING_LEVELS.TAB) {
|
|
7
|
+
this.name = name;
|
|
8
|
+
this.policies = policies;
|
|
9
|
+
this.sharingLevel = sharingLevel;
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.tabId = tabId;
|
|
10
|
-
this.name = name;
|
|
11
|
-
this.policies = policies;
|
|
12
|
-
this.requirementType = DEFAULT_REQUIREMENT_TYPE;
|
|
13
|
-
|
|
14
|
-
validateType(policies, Array);
|
|
15
|
-
policies && validateType(policies[0], Policy);
|
|
11
|
+
validateType(policies, Array);
|
|
12
|
+
policies && validateType(policies[0], Policy);
|
|
13
|
+
}
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
class Policy {
|
|
17
|
+
constructor(name, attributes) {
|
|
18
|
+
this.policyName = name;
|
|
19
|
+
this.attributes = attributes;
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
validateType(attributes, Array);
|
|
22
|
+
attributes && validateType(attributes[0], Attribute);
|
|
23
|
+
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
});
|
|
26
|
+
class Attribute {
|
|
27
|
+
constructor(name, type, values) {
|
|
28
|
+
this.attributeName = name;
|
|
29
|
+
this.type = type.value;
|
|
30
|
+
this.values = values.map(value => ({ value }));
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
if (!AttributeTypes.get(type) || !AttributeTypes.get(type.key)) {
|
|
33
|
+
throw TypeError(`Expected type to be instance of: ${AttributeTypes.name}`);
|
|
34
|
+
}
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
const models = require('../models/create.requirement.model');
|
|
2
2
|
const attributeTypes = require('../consts/attributeTypes.json');
|
|
3
3
|
const dataTypeUtils = require('../../../../common/utils/dataTypeUtils');
|
|
4
|
+
const { REQUIREMENT_SHARING_LEVELS } = require('../consts/consts');
|
|
4
5
|
|
|
5
6
|
const convertNumericValuesToNumberType = function(value) {
|
|
6
7
|
if (dataTypeUtils.isString(value) && value.startsWith('$')) {
|
|
@@ -76,11 +77,13 @@ const getPolicyModel = function(policyData) {
|
|
|
76
77
|
return new models.Policy(policyData.name, attributeModels);
|
|
77
78
|
};
|
|
78
79
|
|
|
79
|
-
const getCreateRequirementModel = function(
|
|
80
|
-
const policies =
|
|
81
|
-
const policyModels = policies.map(policy => getPolicyModel(policy));
|
|
80
|
+
const getCreateRequirementModel = function(requirement) {
|
|
81
|
+
const { policies, name, sharingLevel } = requirement;
|
|
82
82
|
|
|
83
|
-
|
|
83
|
+
const parsedPolicies = parseRequirementConfig(policies);
|
|
84
|
+
const policyModels = parsedPolicies.map(policy => getPolicyModel(policy));
|
|
85
|
+
|
|
86
|
+
return new models.CreateRequirementModel(name, policyModels, sharingLevel);
|
|
84
87
|
};
|
|
85
88
|
|
|
86
89
|
module.exports = {
|