@getjones/test-infra 4.5.6 → 4.5.8
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/common/consts/accountSettings.js +26 -0
- package/src/common/consts/homepage/AttentionTab.js +2 -1
- package/src/common/utils/complianceUtil.js +2 -2
- package/src/saas/internal-api/compliance/api/audit/audit.api.js +8 -8
- package/src/saas/internal-api/compliance/api/audit/audit.service.js +24 -15
- package/src/saas/internal-api/recordHub/api/record.hub.service.js +13 -2
- package/src/saas/internal-api/requests/api/requests.api.js +8 -2
- package/src/saas/internal-api/requests/api/requests.service.js +12 -1
- package/src/saas/internal-api/requirements/api/requirements.service.js +8 -1
package/package.json
CHANGED
|
@@ -10,5 +10,31 @@ module.exports = {
|
|
|
10
10
|
isPolicyVerificationEnabled: {
|
|
11
11
|
on: { hasPolicyVerification: true },
|
|
12
12
|
off: { hasPolicyVerification: false }
|
|
13
|
+
},
|
|
14
|
+
integrations: {
|
|
15
|
+
vendorsAndTenantsON: {
|
|
16
|
+
integrations: {
|
|
17
|
+
isVendorIntegrationsEnabled: true,
|
|
18
|
+
isTenantIntegrationsEnabled: true
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
vendorsAndTenantsOFF: {
|
|
22
|
+
integrations: {
|
|
23
|
+
isVendorIntegrationsEnabled: false,
|
|
24
|
+
isTenantIntegrationsEnabled: false
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
vendorsON: {
|
|
28
|
+
integrations: {
|
|
29
|
+
isVendorIntegrationsEnabled: true,
|
|
30
|
+
isTenantIntegrationsEnabled: false
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
tenantsON: {
|
|
34
|
+
integrations: {
|
|
35
|
+
isVendorIntegrationsEnabled: false,
|
|
36
|
+
isTenantIntegrationsEnabled: true
|
|
37
|
+
}
|
|
38
|
+
}
|
|
13
39
|
}
|
|
14
40
|
};
|
|
@@ -50,14 +50,14 @@ const prepareMetadataForAudit = async (
|
|
|
50
50
|
const isReauditResponse = await isReaudit(recordId, auditorContext);
|
|
51
51
|
metadata.isReaudit = isReauditResponse.data.isReaudit;
|
|
52
52
|
|
|
53
|
+
const enterAuditResponse = await auditApi.enterAudit(recordId, auditorContext); //moved up here
|
|
54
|
+
|
|
53
55
|
const recordDetailsResponse = await auditApi.getAuditRecordModel(recordId, auditorContext);
|
|
54
56
|
const recordDetails = recordDetailsResponse.data;
|
|
55
57
|
|
|
56
58
|
const auditResponse = await auditApi.getAuditMetadata(recordDetails.auditId, auditorContext);
|
|
57
59
|
const { currentAudit } = auditResponse.data;
|
|
58
60
|
|
|
59
|
-
const enterAuditResponse = await auditApi.enterAudit(recordId, auditorContext);
|
|
60
|
-
|
|
61
61
|
metadata.certificateId = recordDetails.certificateDetails.certificateuploadId;
|
|
62
62
|
metadata.auditDates = {
|
|
63
63
|
contractorId: recordId,
|
|
@@ -20,13 +20,13 @@ const Endpoints = {
|
|
|
20
20
|
auditRawData: recordId => `${backendUrl}/saas/integration-tests/record/${recordId}/audit/raw`
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
const audit = async (contractorId, auditRequestModel, context) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
};
|
|
23
|
+
// const audit = async (contractorId, auditRequestModel, context) => {
|
|
24
|
+
// await enterAudit(contractorId, context);
|
|
25
|
+
// const auditResponse = await getAuditMetadata(auditRequestModel.auditId, context);
|
|
26
|
+
// const { currentAudit } = auditResponse.data;
|
|
27
|
+
// auditRequestModel.auditDates.auditDateModified = currentAudit.dateModified;
|
|
28
|
+
// return submitAudit(auditRequestModel, context);
|
|
29
|
+
// };
|
|
30
30
|
|
|
31
31
|
const submitAudit = async (auditRequestModel, context) => {
|
|
32
32
|
return requests.postRequestHandler(Endpoints.audit, auditRequestModel, context);
|
|
@@ -95,7 +95,7 @@ const getAuditRawData = (recordId, context) => {
|
|
|
95
95
|
};
|
|
96
96
|
|
|
97
97
|
module.exports = {
|
|
98
|
-
audit,
|
|
98
|
+
// audit,
|
|
99
99
|
submitAudit,
|
|
100
100
|
revertCoi,
|
|
101
101
|
wrongCoi,
|
|
@@ -7,10 +7,11 @@ const { cloneObject } = require('../../../../../common/utils/objectUtils');
|
|
|
7
7
|
const complianceUtil = require('../../../../../common/utils/complianceUtil');
|
|
8
8
|
const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
|
|
9
9
|
|
|
10
|
-
const audit = (auditRequestModel, context) => {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
// const audit = (auditRequestModel, context) => {
|
|
11
|
+
// validateType(auditRequestModel, AuditRequestModel);
|
|
12
|
+
// // return auditApi.audit(auditRequestModel.auditData.contractorId, auditRequestModel, context);
|
|
13
|
+
// return auditApi.submitAudit(auditRequestModel, context); //switched to this
|
|
14
|
+
// };
|
|
14
15
|
|
|
15
16
|
const submitAudit = (auditRequestModel, context) => {
|
|
16
17
|
validateType(auditRequestModel, AuditRequestModel);
|
|
@@ -35,24 +36,31 @@ const getAuditorContractorList = (auditListParametersModel, context) => {
|
|
|
35
36
|
return auditApi.getAuditorContractorList(auditListParametersModel, context);
|
|
36
37
|
};
|
|
37
38
|
|
|
38
|
-
const getAuditRequestModelAfterEnterAudit = async (
|
|
39
|
+
const getAuditRequestModelAfterEnterAudit = async (accountId, projectId, requirementId, recordId, auditConfig, context) => {
|
|
39
40
|
const metadata = await prepareMetadataForAudit(context, accountId, projectId, requirementId, recordId);
|
|
40
|
-
const auditEntities = await getAuditEntities(recordId,
|
|
41
|
+
const auditEntities = await getAuditEntities(recordId, auditConfig, context);
|
|
41
42
|
const auditRequestModel = getAuditRequestModel(metadata, auditEntities);
|
|
42
43
|
|
|
43
44
|
return auditRequestModel;
|
|
44
45
|
};
|
|
45
46
|
|
|
46
|
-
const enterAudit = async (recordId, context, {
|
|
47
|
-
|
|
47
|
+
const enterAudit = async (recordId, context, { shouldGetAuditRequestModelAfterEnterAudit, auditConfig, accountId, projectId, requirementId } = {}) => {
|
|
48
|
+
// const enterAudit = async (recordId, context, { auditConfigForModelAfterEnterAudit, accountId, projectId, requirementId } = {}) => {
|
|
49
|
+
if (shouldGetAuditRequestModelAfterEnterAudit) {
|
|
50
|
+
return getAuditRequestModelAfterEnterAudit(accountId, projectId, requirementId, recordId, auditConfig, context);
|
|
51
|
+
} else {
|
|
52
|
+
const enterAuditResponse = await auditApi.enterAudit(recordId, context);
|
|
53
|
+
|
|
54
|
+
if (enterAuditResponse.status !== httpResponseStatusCodes.OK) {
|
|
55
|
+
throw Error(`Failed to enter audit\n$response - ${enterAuditResponse.status}\n${JSON.stringify(enterAuditResponse.data)}`);
|
|
56
|
+
}
|
|
48
57
|
|
|
49
|
-
|
|
50
|
-
throw Error(`Failed to enter audit\n$response - ${enterAuditResponse.status}\n${JSON.stringify(enterAuditResponse.data)}`);
|
|
58
|
+
return enterAuditResponse;
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
return
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
// return auditConfig ?
|
|
62
|
+
// getAuditRequestModelAfterEnterAudit(auditConfig, accountId, projectId, requirementId, recordId, context) :
|
|
63
|
+
// enterAuditResponse;
|
|
56
64
|
};
|
|
57
65
|
|
|
58
66
|
const getAuditRecordModel = (recordId, context) => {
|
|
@@ -180,7 +188,8 @@ const auditRecord = async function(
|
|
|
180
188
|
const auditEntities = await getAuditEntities(recordId, auditApiConfig, auditorContext);
|
|
181
189
|
const auditRequestModel = getAuditRequestModel(auditMetadata, auditEntities);
|
|
182
190
|
|
|
183
|
-
const auditResponse = await
|
|
191
|
+
const auditResponse = await submitAudit(auditRequestModel, auditorContext); // switched to this
|
|
192
|
+
// const auditResponse = await audit(auditRequestModel, auditorContext);
|
|
184
193
|
return auditResponse;
|
|
185
194
|
};
|
|
186
195
|
|
|
@@ -272,7 +281,7 @@ const getAttributeKey = attributeName => {
|
|
|
272
281
|
};
|
|
273
282
|
|
|
274
283
|
module.exports = {
|
|
275
|
-
audit,
|
|
284
|
+
// audit,
|
|
276
285
|
submitAudit,
|
|
277
286
|
revertCoi,
|
|
278
287
|
isReaudit,
|
|
@@ -9,13 +9,24 @@ const doesRecordHaveAgreementStep = async (recordId, context) => {
|
|
|
9
9
|
const recordDataResponse = await getRecordHubDataByRecordId(recordId, context);
|
|
10
10
|
|
|
11
11
|
if (recordDataResponse.status !== httpResponseStatusCodes.OK) {
|
|
12
|
-
throw new Error(`Failed to get record hub data
|
|
12
|
+
throw new Error(`Failed to get record hub data, response status - ${recordDataResponse.status}`);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
return recordDataResponse?.data?.isVendorsAgreementSignNeeded;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
const isFullPolicyCopyInRequirementByRecordId = async (recordId, context) => {
|
|
19
|
+
const recordDataResponse = await getRecordHubDataByRecordId(recordId, context);
|
|
20
|
+
|
|
21
|
+
if (recordDataResponse.status !== httpResponseStatusCodes.OK) {
|
|
22
|
+
throw new Error(`Failed to get record hub data, response status - ${recordDataResponse.status}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return recordDataResponse?.data?.isFullPolicyCopyInRequirement;
|
|
26
|
+
};
|
|
27
|
+
|
|
18
28
|
module.exports = {
|
|
19
29
|
getRecordHubDataByRecordId,
|
|
20
|
-
doesRecordHaveAgreementStep
|
|
30
|
+
doesRecordHaveAgreementStep,
|
|
31
|
+
isFullPolicyCopyInRequirementByRecordId
|
|
21
32
|
};
|
|
@@ -21,7 +21,8 @@ const Endpoints = {
|
|
|
21
21
|
homePageRequestsCount: `${backendUrl}/saas/requests/homepage/count`,
|
|
22
22
|
draftFilterCounters: tabId => `${backendUrl}/saas/tab/${tabId}/requests/draft/filter/counter`,
|
|
23
23
|
activityStatusCounter: tabId => `${backendUrl}/saas/tab/${tabId}/requests/activity-status/count`,
|
|
24
|
-
requestsCounters: tabId => `${backendUrl}/saas/tab/${tabId}/requests/counters
|
|
24
|
+
requestsCounters: tabId => `${backendUrl}/saas/tab/${tabId}/requests/counters`,
|
|
25
|
+
showIntegrations: `${backendUrl}/saas/requests/homepage/show-integrations`
|
|
25
26
|
};
|
|
26
27
|
|
|
27
28
|
const createRequest = (createRequestModel, context) => {
|
|
@@ -83,6 +84,10 @@ const getHomePageRequests = (requestListCriteriaModel, context) => {
|
|
|
83
84
|
return requests.postRequestHandler(Endpoints.homePageRequests, requestListCriteriaModel, context);
|
|
84
85
|
};
|
|
85
86
|
|
|
87
|
+
const isIntegrationsEnabled = context => {
|
|
88
|
+
return requests.getRequestHandler(Endpoints.showIntegrations, {}, context);
|
|
89
|
+
};
|
|
90
|
+
|
|
86
91
|
const getHomePageRequestsCount = context => {
|
|
87
92
|
return requests.getRequestHandler(Endpoints.homePageRequestsCount, {}, context);
|
|
88
93
|
};
|
|
@@ -122,5 +127,6 @@ module.exports = {
|
|
|
122
127
|
getDraftRequestList,
|
|
123
128
|
getDraftFilterCountersByTabId,
|
|
124
129
|
getActivityStatusCounterByTabId,
|
|
125
|
-
getRequestsCountersByTabId
|
|
130
|
+
getRequestsCountersByTabId,
|
|
131
|
+
isIntegrationsEnabled
|
|
126
132
|
};
|
|
@@ -270,6 +270,16 @@ const getRequestsCountersByTabId = async (tabId, context) => {
|
|
|
270
270
|
return response.data;
|
|
271
271
|
};
|
|
272
272
|
|
|
273
|
+
const isIntegrationsEnabled = async context => {
|
|
274
|
+
const response = await requestsAPI.isIntegrationsEnabled(context);
|
|
275
|
+
|
|
276
|
+
if (response.status !== httpResponseStatusCodes.OK) {
|
|
277
|
+
throw Error(`Failed to get the integrations enable status - ${response.status}`);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
return response.data;
|
|
281
|
+
};
|
|
282
|
+
|
|
273
283
|
module.exports = {
|
|
274
284
|
createRequest,
|
|
275
285
|
getAutocompleteAutoSelect,
|
|
@@ -297,5 +307,6 @@ module.exports = {
|
|
|
297
307
|
getDraftRequestListByTabId,
|
|
298
308
|
getDraftFilterCountersByTabId,
|
|
299
309
|
getActivityStatusCounterByTabId,
|
|
300
|
-
getRequestsCountersByTabId
|
|
310
|
+
getRequestsCountersByTabId,
|
|
311
|
+
isIntegrationsEnabled
|
|
301
312
|
};
|
|
@@ -98,9 +98,11 @@ const deleteRequirementByName = async (requirementName, tabId, context) => {
|
|
|
98
98
|
const deleteAllRequirementsInTabs = async (tabIds, context) => {
|
|
99
99
|
const failedToDeleteRequirements = [];
|
|
100
100
|
const successfulDeleteRes = [];
|
|
101
|
+
let requirementsToDelete = [];
|
|
101
102
|
|
|
102
103
|
for (const tabId of tabIds) {
|
|
103
104
|
const { data: existingRequirements } = await getRequirementsByTabId(tabId, context);
|
|
105
|
+
requirementsToDelete = existingRequirements || [];
|
|
104
106
|
|
|
105
107
|
for (const requirement of existingRequirements) {
|
|
106
108
|
const response = await deleteByRequirementId(requirement.id, context);
|
|
@@ -110,6 +112,11 @@ const deleteAllRequirementsInTabs = async (tabIds, context) => {
|
|
|
110
112
|
failedToDeleteRequirements.push(response);
|
|
111
113
|
}
|
|
112
114
|
|
|
115
|
+
if (response.data.result === 'linked') {
|
|
116
|
+
console.error('Requirement is linked to a record and cannot be deleted', requirement.id);
|
|
117
|
+
failedToDeleteRequirements.push(response);
|
|
118
|
+
}
|
|
119
|
+
|
|
113
120
|
if (response.status === httpResponseStatusCodes.OK) {
|
|
114
121
|
successfulDeleteRes.push(response.data.result);
|
|
115
122
|
}
|
|
@@ -117,7 +124,7 @@ const deleteAllRequirementsInTabs = async (tabIds, context) => {
|
|
|
117
124
|
}
|
|
118
125
|
|
|
119
126
|
if (failedToDeleteRequirements.length) {
|
|
120
|
-
throw Error(`Failed to delete ${failedToDeleteRequirements.length} of ${
|
|
127
|
+
throw Error(`Failed to delete ${failedToDeleteRequirements.length} of ${requirementsToDelete.length} requirements in account. Failed with status: ${ failedToDeleteRequirements[0].status }`);
|
|
121
128
|
}
|
|
122
129
|
|
|
123
130
|
return successfulDeleteRes;
|