@getjones/test-infra 4.5.7 → 4.5.9
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 +3 -2
- package/src/common/consts/homepage/sortOptions.js +6 -1
- package/src/common/utils/complianceUtil.js +6 -4
- package/src/factory/records/records.js +1 -0
- package/src/resources/virusFile.pdf +0 -0
- package/src/saas/internal-api/compliance/api/audit/audit.api.js +8 -8
- package/src/saas/internal-api/compliance/api/audit/audit.service.js +52 -23
- 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/requests/models/homepageRequestCriteriaModel.js +1 -1
package/package.json
CHANGED
|
@@ -14,5 +14,31 @@ module.exports = {
|
|
|
14
14
|
isAuditingAiEnabled: {
|
|
15
15
|
on: { isAuditingAiEnabled: true },
|
|
16
16
|
off: { isAuditingAiEnabled: false }
|
|
17
|
+
},
|
|
18
|
+
integrations: {
|
|
19
|
+
vendorsAndTenantsON: {
|
|
20
|
+
integrations: {
|
|
21
|
+
isVendorIntegrationsEnabled: true,
|
|
22
|
+
isTenantIntegrationsEnabled: true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
vendorsAndTenantsOFF: {
|
|
26
|
+
integrations: {
|
|
27
|
+
isVendorIntegrationsEnabled: false,
|
|
28
|
+
isTenantIntegrationsEnabled: false
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
vendorsON: {
|
|
32
|
+
integrations: {
|
|
33
|
+
isVendorIntegrationsEnabled: true,
|
|
34
|
+
isTenantIntegrationsEnabled: false
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
tenantsON: {
|
|
38
|
+
integrations: {
|
|
39
|
+
isVendorIntegrationsEnabled: false,
|
|
40
|
+
isTenantIntegrationsEnabled: true
|
|
41
|
+
}
|
|
42
|
+
}
|
|
17
43
|
}
|
|
18
44
|
};
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
const sortBy = {
|
|
2
2
|
companyName: 'company_name',
|
|
3
|
-
coi: 'coi'
|
|
3
|
+
coi: 'coi',
|
|
4
|
+
externalRecordId: 'external_record_id',
|
|
5
|
+
insuranceStatus: 'insurance_status',
|
|
6
|
+
expiryDate: 'min_policy_expiry',
|
|
7
|
+
projectName: 'project_name',
|
|
8
|
+
accountName: 'companyname'
|
|
4
9
|
};
|
|
5
10
|
|
|
6
11
|
const sortOrder = {
|
|
@@ -36,7 +36,8 @@ const prepareMetadataForAudit = async (
|
|
|
36
36
|
recordId,
|
|
37
37
|
{
|
|
38
38
|
isProjectOnboarding = false,
|
|
39
|
-
shouldSendNotificationToPM = false
|
|
39
|
+
shouldSendNotificationToPM = false,
|
|
40
|
+
dateStartedAudit
|
|
40
41
|
} = {}) => {
|
|
41
42
|
const metadata = {
|
|
42
43
|
accountId,
|
|
@@ -50,19 +51,20 @@ const prepareMetadataForAudit = async (
|
|
|
50
51
|
const isReauditResponse = await isReaudit(recordId, auditorContext);
|
|
51
52
|
metadata.isReaudit = isReauditResponse.data.isReaudit;
|
|
52
53
|
|
|
54
|
+
// const enterAuditResponse = await auditApi.enterAudit(recordId, auditorContext); //moved up here //remove from here
|
|
55
|
+
|
|
53
56
|
const recordDetailsResponse = await auditApi.getAuditRecordModel(recordId, auditorContext);
|
|
54
57
|
const recordDetails = recordDetailsResponse.data;
|
|
55
58
|
|
|
56
59
|
const auditResponse = await auditApi.getAuditMetadata(recordDetails.auditId, auditorContext);
|
|
57
60
|
const { currentAudit } = auditResponse.data;
|
|
58
61
|
|
|
59
|
-
const enterAuditResponse = await auditApi.enterAudit(recordId, auditorContext);
|
|
60
|
-
|
|
61
62
|
metadata.certificateId = recordDetails.certificateDetails.certificateuploadId;
|
|
62
63
|
metadata.auditDates = {
|
|
63
64
|
contractorId: recordId,
|
|
64
65
|
contractorDateModified: recordDetails.dateModified,
|
|
65
|
-
dateStartedAudit:
|
|
66
|
+
dateStartedAudit: dateStartedAudit,
|
|
67
|
+
// dateStartedAudit: enterAuditResponse.data.dateStartedAudit,
|
|
66
68
|
contractorOverrideDateModified: recordDetails.contractorOverrideDateModified,
|
|
67
69
|
contractCreateDate: recordDetails.contractCreateDate,
|
|
68
70
|
auditDateModified: currentAudit.dateModified
|
|
Binary file
|
|
@@ -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,14 +7,22 @@ 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
|
-
const submitAudit = (auditRequestModel, context) => {
|
|
16
|
+
const submitAudit = async (auditRequestModel, context, { expectError } = {}) => {
|
|
16
17
|
validateType(auditRequestModel, AuditRequestModel);
|
|
17
|
-
|
|
18
|
+
|
|
19
|
+
const submitAuditResponse = await auditApi.submitAudit(auditRequestModel, context);
|
|
20
|
+
|
|
21
|
+
if (submitAuditResponse.status !== httpResponseStatusCodes.NO_CONTENT && !expectError) {
|
|
22
|
+
throw new Error(`Failed to submit audit for record: ${auditRequestModel.auditDates.contractorId}. \n${submitAuditResponse.status}`);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return submitAuditResponse;
|
|
18
26
|
};
|
|
19
27
|
|
|
20
28
|
const revertCoi = (contractorId, dateModified, context) => {
|
|
@@ -35,24 +43,31 @@ const getAuditorContractorList = (auditListParametersModel, context) => {
|
|
|
35
43
|
return auditApi.getAuditorContractorList(auditListParametersModel, context);
|
|
36
44
|
};
|
|
37
45
|
|
|
38
|
-
const getAuditRequestModelAfterEnterAudit = async (
|
|
39
|
-
const metadata = await prepareMetadataForAudit(context, accountId, projectId, requirementId, recordId);
|
|
40
|
-
const auditEntities = await getAuditEntities(recordId,
|
|
46
|
+
const getAuditRequestModelAfterEnterAudit = async (accountId, projectId, requirementId, recordId, auditConfig, context, { shouldSendNotificationToPM, dateStartedAudit } = {}) => {
|
|
47
|
+
const metadata = await prepareMetadataForAudit(context, accountId, projectId, requirementId, recordId, { shouldSendNotificationToPM, dateStartedAudit });
|
|
48
|
+
const auditEntities = await getAuditEntities(recordId, auditConfig, context);
|
|
41
49
|
const auditRequestModel = getAuditRequestModel(metadata, auditEntities);
|
|
42
50
|
|
|
43
51
|
return auditRequestModel;
|
|
44
52
|
};
|
|
45
53
|
|
|
46
|
-
const enterAudit = async (recordId, context, {
|
|
54
|
+
const enterAudit = async (recordId, context, { shouldSendNotificationToPM, shouldGetAuditRequestModelAfterEnterAudit, accountId, projectId, requirementId, auditConfig } = {}) => {
|
|
47
55
|
const enterAuditResponse = await auditApi.enterAudit(recordId, context);
|
|
48
56
|
|
|
49
57
|
if (enterAuditResponse.status !== httpResponseStatusCodes.OK) {
|
|
50
58
|
throw Error(`Failed to enter audit\n$response - ${enterAuditResponse.status}\n${JSON.stringify(enterAuditResponse.data)}`);
|
|
51
59
|
}
|
|
52
60
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
61
|
+
if (shouldGetAuditRequestModelAfterEnterAudit) {
|
|
62
|
+
const dateStartedAudit = enterAuditResponse.data.dateStartedAudit;
|
|
63
|
+
return getAuditRequestModelAfterEnterAudit(accountId, projectId, requirementId, recordId, auditConfig, context, { shouldSendNotificationToPM, dateStartedAudit });
|
|
64
|
+
} else {
|
|
65
|
+
return enterAuditResponse;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// return auditConfig ?
|
|
69
|
+
// getAuditRequestModelAfterEnterAudit(auditConfig, accountId, projectId, requirementId, recordId, context) :
|
|
70
|
+
// enterAuditResponse;
|
|
56
71
|
};
|
|
57
72
|
|
|
58
73
|
const getAuditRecordModel = (recordId, context) => {
|
|
@@ -80,7 +95,8 @@ const prepareMetadataForAudit = async (
|
|
|
80
95
|
recordId,
|
|
81
96
|
{
|
|
82
97
|
isProjectOnboarding,
|
|
83
|
-
shouldSendNotificationToPM
|
|
98
|
+
shouldSendNotificationToPM,
|
|
99
|
+
dateStartedAudit
|
|
84
100
|
} = {}
|
|
85
101
|
) => {
|
|
86
102
|
return complianceUtil.prepareMetadataForAudit(
|
|
@@ -91,7 +107,8 @@ const prepareMetadataForAudit = async (
|
|
|
91
107
|
recordId,
|
|
92
108
|
{
|
|
93
109
|
isProjectOnboarding,
|
|
94
|
-
shouldSendNotificationToPM
|
|
110
|
+
shouldSendNotificationToPM,
|
|
111
|
+
dateStartedAudit
|
|
95
112
|
}
|
|
96
113
|
);
|
|
97
114
|
};
|
|
@@ -169,19 +186,31 @@ const auditRecord = async function(
|
|
|
169
186
|
requirementId,
|
|
170
187
|
recordId,
|
|
171
188
|
auditConfig,
|
|
172
|
-
{ shouldSendNotificationToPM = false } = {}
|
|
189
|
+
{ shouldSendNotificationToPM = false, expectError } = {}
|
|
173
190
|
) {
|
|
174
|
-
const
|
|
191
|
+
// const dateStartedAudit = AuditRequestModel.auditDates.dateStartedAudit;
|
|
192
|
+
// const auditMetadata = await prepareMetadataForAudit(auditorContext, accountId, projectId, requirementId, recordId, { shouldSendNotificationToPM, dateStartedAudit });
|
|
175
193
|
|
|
176
|
-
const
|
|
194
|
+
const apiAuditConfig = dataTypeUtils.isObject(auditConfig) ?
|
|
177
195
|
auditUtil.parseAuditConfig(cloneObject(auditConfig)) :
|
|
178
196
|
auditConfig;
|
|
179
197
|
|
|
180
|
-
|
|
181
|
-
const auditRequestModel =
|
|
198
|
+
//enter audit + extract enterAuditResponse.data.dateStartedAudit and send it to prepareMetadataForAudit
|
|
199
|
+
const auditRequestModel = await enterAudit(recordId, auditorContext, { shouldSendNotificationToPM, shouldGetAuditRequestModelAfterEnterAudit: true, auditConfig: apiAuditConfig, accountId, projectId, requirementId });
|
|
200
|
+
|
|
201
|
+
// const auditEntities = await getAuditEntities(recordId, apiAuditConfig, auditorContext);
|
|
202
|
+
// const auditRequestModel = getAuditRequestModel(auditMetadata, auditEntities);
|
|
203
|
+
// const auditResponse = await submitAudit(auditRequestModel, auditorContext); // switched to this
|
|
204
|
+
//call getAuditRequestModelAfterEnterAudit and not the model itself
|
|
205
|
+
return submitAudit(auditRequestModel, auditorContext, { expectError });
|
|
206
|
+
// return submitAudit(accountId, projectId, requirementId, recordId, apiAuditConfig, auditorContext, { shouldSendNotificationToPM, dateStartedAudit, expectError });
|
|
207
|
+
|
|
208
|
+
// const auditResponse = await audit(auditRequestModel, auditorContext);
|
|
209
|
+
// if (auditResponse.status !== httpResponseStatusCodes.NO_CONTENT && !expectError) {
|
|
210
|
+
// throw new Error(`Failed to submit audit for record: ${recordId}. \n${auditResponse.status}`); //see what comes back
|
|
211
|
+
// }
|
|
182
212
|
|
|
183
|
-
|
|
184
|
-
return auditResponse;
|
|
213
|
+
// return auditResponse;
|
|
185
214
|
};
|
|
186
215
|
|
|
187
216
|
const getOnHoldModel = (auditId, onHoldReason) => {
|
|
@@ -272,7 +301,7 @@ const getAttributeKey = attributeName => {
|
|
|
272
301
|
};
|
|
273
302
|
|
|
274
303
|
module.exports = {
|
|
275
|
-
audit,
|
|
304
|
+
// audit,
|
|
276
305
|
submitAudit,
|
|
277
306
|
revertCoi,
|
|
278
307
|
isReaudit,
|
|
@@ -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
|
};
|