@getjones/test-infra 2.7.7 → 2.7.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getjones/test-infra",
3
- "version": "2.7.7",
3
+ "version": "2.7.9",
4
4
  "description": "Providing internal and openapi interface",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -4,7 +4,9 @@ const { getOneWeekAgoDate, getOneWeekAheadDate } = require('../../common/utils/t
4
4
 
5
5
  const DEFAULT_POLICY_DATE = '24/05/2030';
6
6
  const DEFAULT_AM_SCORE = 'A';
7
- const DEFAULT_POLICY_NUMBER = '12345';
7
+
8
+ //Excluded from creating global record: 'ABC-12345-XYZ', 'ABC-123-XYZ', 'ABC-123'. When GR is needed - use different GL number.
9
+ const DEFAULT_POLICY_NUMBER = 'ABC-12345-XYZ';
8
10
 
9
11
  const {
10
12
  certificateIssueDate,
@@ -113,7 +113,7 @@ const prepareWaivedRecord = async (recordCompany, recordEmail, tabId, requiremen
113
113
  const recordId = await prepareRecord(recordCompany, recordEmail, complianceStatuses.notCompliant, tabId, requirementId, context);
114
114
 
115
115
  const { data: record } = await contractors.services.getContractorById(recordId, context);
116
- await compliance.services.waive.waiveAll(record, context);
116
+ await compliance.services.overrideGap.waiveAll(record, context);
117
117
 
118
118
  return recordId;
119
119
  };
@@ -27,7 +27,7 @@ const setAccountSettings = async (accountId, settings, context) => {
27
27
  const updateResponse = await updateAccountSettings(settingsModel, context);
28
28
 
29
29
  if (updateResponse.status !== httpResponseStatusCodes.OK) {
30
- throw new Error(`Failed to set account: ${accountId} settings\n${updateResponse}`);
30
+ throw new Error(`Failed to set account: ${accountId} settings\n${updateResponse.data}`);
31
31
  }
32
32
 
33
33
  return updateResponse;
@@ -3,7 +3,9 @@ const { backendUrl } = require('../../../../../env').getEnv();
3
3
 
4
4
  const Endpoints = {
5
5
  waive: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
6
- retract: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`
6
+ retract: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
7
+ overrideGap: `${backendUrl}/saas/record/override-gap`,
8
+ retractOverride: `${backendUrl}/saas/record/retract-override`
7
9
  };
8
10
 
9
11
  const waive = async (contractorId, waiveRequestModel, context) => {
@@ -18,4 +20,14 @@ const retract = async (contractorId, retractRequestModel, context) => {
18
20
  return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
19
21
  };
20
22
 
21
- module.exports = { waive, retract };
23
+ const overrideGap = (waiveRequestModel, isTestingBackwardCompatibility, context) => {
24
+ const headers = {};
25
+ const params = { isTestingBackwardCompatibility };
26
+ return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
27
+ };
28
+
29
+ const retractOverride = (retractRequestModel, context) => {
30
+ return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
31
+ };
32
+
33
+ module.exports = { waive, retract, overrideGap, retractOverride };
@@ -1,6 +1,6 @@
1
1
  const env = require('../../../../../env');
2
2
 
3
- const waiveApi = require('./waive.api');
3
+ const overrideGapApi = require('./override.gap.api');
4
4
  const { WaiveRequestModel, RetractRequestModel, WAIVER_REASONS } = require('../../models/waive/waive.model');
5
5
  const { validateType } = require('../../../../../common/validations/typeValidations');
6
6
  const auditUtil = require('../../utils/auditUtil');
@@ -11,12 +11,22 @@ const userTypes = require('../../../../../common/consts/userTypes');
11
11
 
12
12
  const waive = (waiveRequestModel, context) => {
13
13
  validateType(waiveRequestModel, WaiveRequestModel);
14
- return waiveApi.waive(waiveRequestModel.contractorId, waiveRequestModel, context);
14
+ return overrideGapApi.waive(waiveRequestModel.contractorId, waiveRequestModel, context);
15
15
  };
16
16
 
17
17
  const retract = (retractRequestModel, context) => {
18
18
  validateType(retractRequestModel, RetractRequestModel);
19
- return waiveApi.retract(retractRequestModel.contractorId, retractRequestModel, context);
19
+ return overrideGapApi.retract(retractRequestModel.contractorId, retractRequestModel, context);
20
+ };
21
+
22
+ const overrideGap = ({ waiveRequestModel, isTestingBackwardCompatibility = false, context }) => {
23
+ validateType(waiveRequestModel, WaiveRequestModel);
24
+ return overrideGapApi.overrideGap(waiveRequestModel, isTestingBackwardCompatibility, context);
25
+ };
26
+
27
+ const retractOverride = (retractRequestModel, context) => {
28
+ validateType(retractRequestModel, RetractRequestModel);
29
+ return overrideGapApi.retractOverride(retractRequestModel, context);
20
30
  };
21
31
 
22
32
  const getWaiveModel = (
@@ -111,5 +121,7 @@ module.exports = {
111
121
  retract,
112
122
  getWaiveModel,
113
123
  getRetractModel,
114
- getWaiveModelByGap
124
+ getWaiveModelByGap,
125
+ overrideGap,
126
+ retractOverride
115
127
  };
@@ -2,12 +2,13 @@ const auditModels = require('./models/audit/audit.model');
2
2
  const auditServices = require('./api/audit/audit.service');
3
3
 
4
4
  const waiveModels = require('./models/waive/waive.model');
5
- const waiveServices = require('./api/waive/waive.service');
5
+ const overrideGapServices = require('./api/overrideGap/override.gap.service');
6
6
 
7
7
  const convertServices = require('./api/convert/convert.service');
8
8
  const coverageServices = require('./api/coverage/coverage.service');
9
9
 
10
10
  const auditConsts = require('./consts/audit');
11
+ const auditUtils = require('./utils/auditUtil');
11
12
 
12
13
  const models = {
13
14
  audit: auditModels,
@@ -18,11 +19,15 @@ const consts = {
18
19
  audit: auditConsts
19
20
  };
20
21
 
22
+ const utils = {
23
+ audit: auditUtils
24
+ };
25
+
21
26
  const services = {
22
27
  audit: auditServices,
23
- waive: waiveServices,
28
+ overrideGap: overrideGapServices,
24
29
  convert: convertServices,
25
30
  coverage: coverageServices
26
31
  };
27
32
 
28
- module.exports = { services, models, consts };
33
+ module.exports = { services, models, consts, utils };
@@ -5,8 +5,9 @@ const WAIVE_ACTIONS = {
5
5
 
6
6
  const WAIVER_REASONS = {
7
7
  BUSINESS_DECISION: 'Business Decision',
8
- NO_EXPOSURE: 'No Exposure',
9
- EXECUTIVE_APPROVAL: 'Executive Approval'
8
+ EXECUTIVE_APPROVAL: 'Executive Approval',
9
+ ACCEPT_NO_EXPOSURE: 'Accept / No Exposure',
10
+ NO_EXPOSURE: 'No Exposure' // DEPRECATED - BACKWARD COMPATIBILITY
10
11
  };
11
12
 
12
13
  function WaiveRequestModel({
@@ -127,9 +127,9 @@ const deleteAllRecordsInAccount = async (accountId, context, { activationStatus
127
127
  }
128
128
  };
129
129
 
130
- const getRecordVerificationModel = async (recordId, context) => {
130
+ const getRecordVerificationModel = async (recordId, context, { requirementId, requirementDateModified } = {}) => {
131
131
  const { data: recordData } = await getContractorById(recordId, context);
132
- return new RecordModifyDateVerificationModel(recordData.id, { contractorDateModified: recordData.dateModified });
132
+ return new RecordModifyDateVerificationModel(recordData.id, { contractorDateModified: recordData.dateModified, requirementId, requirementDateModified });
133
133
  };
134
134
 
135
135
  const getAssignRequirementModel = (requirementId, companyName, emailAddress) => {
@@ -52,7 +52,7 @@ const getRequestsByAccountId = (accountId, context, activationStatus) => {
52
52
  return requestsAPI.getRequestsByAccountId(accountId, context, params);
53
53
  };
54
54
 
55
- const getCreateRequestModel = (requirementId, contractor, { tabId, publicLink, sendMail } = {}) => {
55
+ const getCreateRequestModel = (requirementId, contractor, { tabId, publicLink, sendMail, requirementDateModified } = {}) => {
56
56
  const { recordType, email, companyName, additionalEmails } = contractor;
57
57
  const contractorInfoModel = new ContractorInfo(recordType, email, companyName, additionalEmails);
58
58
 
@@ -63,12 +63,13 @@ const getCreateRequestModel = (requirementId, contractor, { tabId, publicLink, s
63
63
  {
64
64
  tabId,
65
65
  publicLink,
66
- sendMail
66
+ sendMail,
67
+ requirementDateModified
67
68
  }
68
69
  );
69
70
  };
70
71
 
71
- const getOrCreateRequest = async (context, tabId, requirementId, contractor, activationStatus, { sendMail } = {}) => {
72
+ const getOrCreateRequest = async (context, tabId, requirementId, contractor, activationStatus, { sendMail, requirementDateModified } = {}) => {
72
73
  const { data: existingRequests } = await getRequestsByTabId(tabId, context, activationStatus);
73
74
 
74
75
  const filteredRequests = Array.isArray(existingRequests) ? existingRequests.filter(({ record }) =>
@@ -78,8 +79,7 @@ const getOrCreateRequest = async (context, tabId, requirementId, contractor, act
78
79
  return filteredRequests[0];
79
80
  }
80
81
 
81
- const createContractorModel = getCreateRequestModel(requirementId, contractor, { tabId, sendMail });
82
- //JON-8788: add optional parameter dateModified otherwise doesn't work for updated req
82
+ const createContractorModel = getCreateRequestModel(requirementId, contractor, { tabId, sendMail, requirementDateModified });
83
83
  const createContractorResponse = await createRequest(createContractorModel, context);
84
84
  return createContractorResponse.data;
85
85
  };
@@ -1,27 +1,33 @@
1
1
  const { getEnv } = require('../../../../env');
2
2
  const { credentials } = getEnv();
3
3
 
4
- const { validateType } = require('../../../../common/validations/typeValidations');
4
+ const { validateType, validateDateString } = require('../../../../common/validations/typeValidations');
5
5
 
6
6
  const superUserEmail = credentials.superUser;
7
7
 
8
- function CreateRequestModel(requirementId, inviterEmail, vendorInfo, { tabId = null, sendMail = false, publicLink } = {}) {
9
- this.reqId = requirementId;
10
- this.inviterEmail = inviterEmail || superUserEmail;
11
- this.vendorInfo = vendorInfo;
12
- this.disableMail = !sendMail;
13
- this.tabId = tabId;
14
- this.publicLink = publicLink;
8
+ class CreateRequestModel {
9
+ constructor(requirementId, inviterEmail, vendorInfo, { tabId = null, sendMail = false, publicLink, requirementDateModified } = {}) {
10
+ this.reqId = requirementId;
11
+ this.inviterEmail = inviterEmail || superUserEmail;
12
+ this.vendorInfo = vendorInfo;
13
+ this.disableMail = !sendMail;
14
+ this.tabId = tabId;
15
+ this.publicLink = publicLink;
16
+ this.dateModified = requirementDateModified;
15
17
 
16
- vendorInfo && validateType(vendorInfo, ContractorInfo);
18
+ vendorInfo && validateType(vendorInfo, ContractorInfo);
19
+ requirementDateModified && validateDateString(requirementDateModified);
20
+ }
17
21
  }
18
22
 
19
- function ContractorInfo(recordType, email, companyName, additionalEmails) {
20
- this.recordType = recordType;
21
- this.email = email;
22
- this.companyName = companyName;
23
- this.title = email;
24
- this.additionalEmails = additionalEmails;
23
+ class ContractorInfo {
24
+ constructor(recordType, email, companyName, additionalEmails) {
25
+ this.recordType = recordType;
26
+ this.email = email;
27
+ this.companyName = companyName;
28
+ this.title = email;
29
+ this.additionalEmails = additionalEmails;
30
+ }
25
31
  }
26
32
 
27
33
  module.exports = { CreateRequestModel, ContractorInfo };
@@ -106,6 +106,16 @@ const getUpdatedRequirementModel = async (updatedRequirement, tabId, context, {
106
106
  return requirementUtils.getUpdateRequirementModel(updatedRequirement);
107
107
  };
108
108
 
109
+ const getRequirementDateModified = async (tabId, requirementName, context) => {
110
+ const requirementRes = await getRequirementByName(tabId, requirementName, context);
111
+
112
+ if (!requirementRes) {
113
+ throw new Error(`Failed to retrieve requirement - ${requirementName}`);
114
+ }
115
+
116
+ return requirementRes.dateModified;
117
+ };
118
+
109
119
  module.exports = {
110
120
  createRequirement,
111
121
  getRequirementById,
@@ -119,5 +129,6 @@ module.exports = {
119
129
  deleteRequirementByName,
120
130
  deleteAllRequirementsInTabs,
121
131
  getCreateRequirementModel,
122
- getUpdatedRequirementModel
132
+ getUpdatedRequirementModel,
133
+ getRequirementDateModified
123
134
  };