@getjones/test-infra 2.7.11 → 2.7.13

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.11",
3
+ "version": "2.7.13",
4
4
  "description": "Providing internal and openapi interface",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -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.overrideGap.waiveAll(record, context);
116
+ await compliance.services.overrideGap.waiveAllGaps(record, context);
117
117
 
118
118
  return recordId;
119
119
  };
@@ -2,32 +2,18 @@ const requests = require('../../../../../common/requests/cookieAuth/requests');
2
2
  const { backendUrl } = require('../../../../../env').getEnv();
3
3
 
4
4
  const Endpoints = {
5
- waive: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
6
- retract: contractorId => `${backendUrl}/saas/contractors/${contractorId}/waiver`,
7
5
  overrideGap: `${backendUrl}/saas/record/override-gap`,
8
6
  retractOverride: `${backendUrl}/saas/record/retract-override`
9
7
  };
10
8
 
11
- const waive = async (contractorId, waiveRequestModel, context) => {
12
- const status = waiveRequestModel.status;
13
- delete waiveRequestModel.status;
14
- return requests.postRequestHandler(Endpoints.waive(contractorId), waiveRequestModel, context, {}, { status });
15
- };
16
-
17
- const retract = async (contractorId, retractRequestModel, context) => {
18
- const status = retractRequestModel.status;
19
- delete retractRequestModel.status;
20
- return requests.postRequestHandler(Endpoints.retract(contractorId), retractRequestModel, context, {}, { status });
21
- };
22
-
23
- const overrideGap = (waiveRequestModel, isTestingBackwardCompatibility, context) => {
9
+ const overrideGap = ({ overrideGapModel, isTestingBackwardCompatibility = false, context }) => {
24
10
  const headers = {};
25
11
  const params = { isTestingBackwardCompatibility };
26
- return requests.postRequestHandler(Endpoints.overrideGap, waiveRequestModel, context, headers, params);
12
+ return requests.postRequestHandler(Endpoints.overrideGap, overrideGapModel, context, headers, params);
27
13
  };
28
14
 
29
- const retractOverride = (retractRequestModel, context) => {
30
- return requests.postRequestHandler(Endpoints.retractOverride, retractRequestModel, context);
15
+ const retractOverride = (retractModel, context) => {
16
+ return requests.postRequestHandler(Endpoints.retractOverride, retractModel, context);
31
17
  };
32
18
 
33
- module.exports = { waive, retract, overrideGap, retractOverride };
19
+ module.exports = { overrideGap, retractOverride };
@@ -1,7 +1,9 @@
1
1
  const env = require('../../../../../env');
2
2
 
3
3
  const overrideGapApi = require('./override.gap.api');
4
- const { WaiveRequestModel, RetractRequestModel, WAIVER_REASONS } = require('../../models/waive/waive.model');
4
+ const { OverrideGapModel } = require('../../models/overrideGap/override.gap.model');
5
+ const { RetractOverrideGapModel } = require('../../models/overrideGap/retract.override.gap.model');
6
+ const { OVERRIDE_GAP_REASONS } = require('../../consts/overrideGap');
5
7
  const { validateType } = require('../../../../../common/validations/typeValidations');
6
8
  const auditUtil = require('../../utils/auditUtil');
7
9
  const httpResponseStatusCodes = require('../../../../../common/httpResponseStatusCodes.json');
@@ -9,27 +11,17 @@ const httpResponseStatusCodes = require('../../../../../common/httpResponseStatu
9
11
  const { credentials } = env.getEnv();
10
12
  const userTypes = require('../../../../../common/consts/userTypes');
11
13
 
12
- const waive = (waiveRequestModel, context) => {
13
- validateType(waiveRequestModel, WaiveRequestModel);
14
- return overrideGapApi.waive(waiveRequestModel.contractorId, waiveRequestModel, context);
14
+ const overrideGap = ({ overrideGapModel, isTestingBackwardCompatibility = false, context }) => {
15
+ validateType(overrideGapModel, OverrideGapModel);
16
+ return overrideGapApi.overrideGap({ overrideGapModel, isTestingBackwardCompatibility, context });
15
17
  };
16
18
 
17
- const retract = (retractRequestModel, context) => {
18
- validateType(retractRequestModel, RetractRequestModel);
19
- return overrideGapApi.retract(retractRequestModel.contractorId, retractRequestModel, context);
19
+ const retractOverride = (retractModel, context) => {
20
+ validateType(retractModel, RetractOverrideGapModel);
21
+ return overrideGapApi.retractOverride(retractModel, context);
20
22
  };
21
23
 
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);
30
- };
31
-
32
- const getWaiveModel = (
24
+ const getOverrideGapModel = (
33
25
  record,
34
26
  policyName,
35
27
  attributeName,
@@ -43,7 +35,7 @@ const getWaiveModel = (
43
35
  userId = userId || env.getSystemUserIdentity(credentials.superUser).id;
44
36
  userRole = userRole || userTypes.ICS;
45
37
 
46
- const waiveModel = new WaiveRequestModel({
38
+ const waiveModel = new OverrideGapModel({
47
39
  contractorId: record.id,
48
40
  auditId,
49
41
  waiverReason,
@@ -67,7 +59,7 @@ const getWaiveModelByGap = (
67
59
  } = {}) => {
68
60
  const attributeName = auditUtil.getAttributeNameByGap(record, policyName, gap);
69
61
 
70
- return getWaiveModel(record, policyName, attributeName, reason, note, { userId, userRole });
62
+ return getOverrideGapModel(record, policyName, attributeName, reason, note, { userId, userRole });
71
63
  };
72
64
 
73
65
  const getRetractModel = (record, policyName, attributeName) => {
@@ -75,7 +67,7 @@ const getRetractModel = (record, policyName, attributeName) => {
75
67
  const userId = env.getSystemUserIdentity(credentials.superUser).id;
76
68
  const userRole = userTypes.ICS;
77
69
 
78
- const retractModel = new RetractRequestModel({
70
+ const retractModel = new RetractOverrideGapModel({
79
71
  contractorId: record.id,
80
72
  auditId,
81
73
  userId,
@@ -102,12 +94,13 @@ const getPolicyAuditIdFromRecord = (record, policyName, attributeName) => {
102
94
  return attribute.auditId;
103
95
  };
104
96
 
105
- const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
97
+ // PRIVATE METHOD - please refer to waiveAllGaps / acceptAllGaps according to your needs
98
+ const overrideAllGaps = async (record, context, { reason = OVERRIDE_GAP_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
106
99
  const allWaivablePolicies = auditUtil.getAllWaivablePolicies(record, context);
107
100
 
108
101
  for (const waivable of allWaivablePolicies) {
109
- const waiveModel = getWaiveModel(record, waivable.policyName, waivable.attributeName, reason, note);
110
- const waiveResponse = await waive(waiveModel, context);
102
+ const overrideGapModel = getOverrideGapModel(record, waivable.policyName, waivable.attributeName, reason, note);
103
+ const waiveResponse = await overrideGap({ overrideGapModel, context });
111
104
 
112
105
  if (waiveResponse.status !== httpResponseStatusCodes.OK) {
113
106
  throw Error(`Failed to waive ${waivable.policyName} - ${waivable.attributeName} for ${record.company}`);
@@ -115,11 +108,24 @@ const waiveAll = async (record, context, { reason = WAIVER_REASONS.BUSINESS_DECI
115
108
  }
116
109
  };
117
110
 
111
+ const waiveAllGaps = async (record, context, { reason = OVERRIDE_GAP_REASONS.BUSINESS_DECISION, note = 'WAIVED AUTOMATICALLY' } = {}) => {
112
+ const waivedReasons = new Set([OVERRIDE_GAP_REASONS.BUSINESS_DECISION, OVERRIDE_GAP_REASONS.EXECUTIVE_APPROVAL, OVERRIDE_GAP_REASONS.NO_EXPOSURE]);
113
+
114
+ if (!waivedReasons.has(reason)) {
115
+ throw Error(`Invalid waive reason ${reason} provided when trying to waive all gaps to waive`);
116
+ }
117
+
118
+ await overrideAllGaps(record, context, { reason, note });
119
+ };
120
+
121
+ const acceptAllGaps = async (record, context, { note = 'ACCEPTED AUTOMATICALLY' } = {}) => {
122
+ overrideAllGaps(record, context, { reason: OVERRIDE_GAP_REASONS.ACCEPT_NO_EXPOSURE, note });
123
+ };
124
+
118
125
  module.exports = {
119
- waive,
120
- waiveAll,
121
- retract,
122
- getWaiveModel,
126
+ acceptAllGaps,
127
+ waiveAllGaps,
128
+ getOverrideGapModel,
123
129
  getRetractModel,
124
130
  getWaiveModelByGap,
125
131
  overrideGap,
@@ -0,0 +1,10 @@
1
+ const OVERRIDE_GAP_REASONS = {
2
+ BUSINESS_DECISION: 'Business Decision',
3
+ EXECUTIVE_APPROVAL: 'Executive Approval',
4
+ ACCEPT_NO_EXPOSURE: 'Accept / No Exposure',
5
+ NO_EXPOSURE: 'No Exposure' // DEPRECATED - BACKWARD COMPATIBILITY
6
+ };
7
+
8
+ module.exports = {
9
+ OVERRIDE_GAP_REASONS
10
+ };
@@ -1,13 +1,14 @@
1
1
  const auditModels = require('./models/audit/audit.model');
2
2
  const auditServices = require('./api/audit/audit.service');
3
3
 
4
- const waiveModels = require('./models/waive/waive.model');
4
+ const waiveModels = require('./models/overrideGap/override.gap.model');
5
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 overrideGapConsts = require('./consts/overrideGap');
11
12
  const auditUtils = require('./utils/auditUtil');
12
13
 
13
14
  const models = {
@@ -16,7 +17,8 @@ const models = {
16
17
  };
17
18
 
18
19
  const consts = {
19
- audit: auditConsts
20
+ audit: auditConsts,
21
+ overrideGap: overrideGapConsts
20
22
  };
21
23
 
22
24
  const utils = {
@@ -0,0 +1,16 @@
1
+ class OverrideGapModel {
2
+ constructor({
3
+ contractorId, auditId, waiverReason, remarks, userId, userRole
4
+ }) {
5
+ this.auditorContractorId = auditId;
6
+ this.contractorId = contractorId;
7
+ this.waiverReason = waiverReason;
8
+ this.remarks = remarks || '';
9
+ this.userId = userId;
10
+ this.userRole = userRole;
11
+ }
12
+ }
13
+
14
+ module.exports = {
15
+ OverrideGapModel
16
+ };
@@ -0,0 +1,14 @@
1
+ class RetractOverrideGapModel {
2
+ constructor({
3
+ contractorId, auditId, userId, userRole
4
+ }) {
5
+ this.auditorContractorId = auditId;
6
+ this.contractorId = contractorId;
7
+ this.userId = userId;
8
+ this.userRole = userRole;
9
+ }
10
+ }
11
+
12
+ module.exports = {
13
+ RetractOverrideGapModel
14
+ };
@@ -2,7 +2,7 @@ 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 waiveModels = require('../models/waive/waive.model');
5
+ const { OVERRIDE_GAP_REASONS } = require('../consts/overrideGap');
6
6
 
7
7
  const emptyValue = '';
8
8
 
@@ -216,7 +216,7 @@ const specialAttributes = {
216
216
  };
217
217
 
218
218
  const waiveReasons = {
219
- 'No Exposure': waiveModels.WAIVER_REASONS.NO_EXPOSURE,
220
- 'Business Decision': waiveModels.WAIVER_REASONS.BUSINESS_DECISION,
221
- 'Executive Approval': waiveModels.WAIVER_REASONS.EXECUTIVE_APPROVAL
219
+ 'No Exposure': OVERRIDE_GAP_REASONS.NO_EXPOSURE,
220
+ 'Business Decision': OVERRIDE_GAP_REASONS.BUSINESS_DECISION,
221
+ 'Executive Approval': OVERRIDE_GAP_REASONS.EXECUTIVE_APPROVAL
222
222
  };
@@ -1,49 +0,0 @@
1
- const WAIVE_ACTIONS = {
2
- WAIVE: 'ignored',
3
- RETRACT: 'notIgnored'
4
- };
5
-
6
- const WAIVER_REASONS = {
7
- BUSINESS_DECISION: 'Business Decision',
8
- EXECUTIVE_APPROVAL: 'Executive Approval',
9
- ACCEPT_NO_EXPOSURE: 'Accept / No Exposure',
10
- NO_EXPOSURE: 'No Exposure' // DEPRECATED - BACKWARD COMPATIBILITY
11
- };
12
-
13
- function WaiveRequestModel({
14
- contractorId,
15
- auditId,
16
- waiverReason,
17
- remarks,
18
- userId,
19
- userRole
20
- }) {
21
- this.auditorContractorId = auditId;
22
- this.contractorId = contractorId;
23
- this.waiverReason = waiverReason;
24
- this.remarks = remarks || '';
25
-
26
- this.userId = userId,
27
- this.userRole = userRole,
28
- this.status = WAIVE_ACTIONS.WAIVE;
29
- }
30
-
31
- function RetractRequestModel({
32
- contractorId,
33
- auditId,
34
- userId,
35
- userRole
36
- }) {
37
- this.auditorContractorId = auditId;
38
- this.contractorId = contractorId;
39
- this.userId = userId;
40
- this.userRole = userRole;
41
- this.status = WAIVE_ACTIONS.RETRACT;
42
- }
43
-
44
- module.exports = {
45
- WaiveRequestModel,
46
- RetractRequestModel,
47
- WAIVE_ACTIONS,
48
- WAIVER_REASONS
49
- };