@getjones/test-infra 1.11.0 → 1.12.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.
Files changed (128) hide show
  1. package/package.json +29 -29
  2. package/src/common/factory/index.js +3 -3
  3. package/src/common/factory/records/records.js +71 -45
  4. package/src/common/httpResponseStatusCodes.json +11 -11
  5. package/src/common/requests/apiKeyAuth/requests.js +38 -38
  6. package/src/common/requests/cookieAuth/requests.js +40 -40
  7. package/src/common/requests/requestHandlers.js +60 -60
  8. package/src/common/utils/numberUtils.js +22 -22
  9. package/src/common/utils/timeUtils.js +162 -147
  10. package/src/common/validations/errorValidation.js +16 -16
  11. package/src/common/validations/typeValidations.js +36 -36
  12. package/src/env.js +45 -45
  13. package/src/index.js +69 -67
  14. package/src/saas/internal-api/accounts/api/core/accounts.core.api.js +28 -28
  15. package/src/saas/internal-api/accounts/api/core/accounts.core.service.js +77 -77
  16. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.api.js +48 -48
  17. package/src/saas/internal-api/accounts/api/openapi/accounts.openapi.service.js +74 -74
  18. package/src/saas/internal-api/accounts/api/settings/settings.api.js +21 -21
  19. package/src/saas/internal-api/accounts/api/settings/settings.service.js +24 -24
  20. package/src/saas/internal-api/accounts/index.js +20 -20
  21. package/src/saas/internal-api/accounts/models/core/create.account.model.js +15 -15
  22. package/src/saas/internal-api/accounts/models/settings/update.settings.model.js +19 -19
  23. package/src/saas/internal-api/accounts/utils/utils.js +32 -32
  24. package/src/saas/internal-api/auth/api/auth.api.js +12 -12
  25. package/src/saas/internal-api/auth/api/auth.service.js +47 -47
  26. package/src/saas/internal-api/auth/index.js +3 -3
  27. package/src/saas/internal-api/coi/api/coi.api.js +34 -34
  28. package/src/saas/internal-api/coi/api/coi.service.js +22 -22
  29. package/src/saas/internal-api/coi/consts/uploaderTypes.js +7 -7
  30. package/src/saas/internal-api/coi/index.js +13 -13
  31. package/src/saas/internal-api/coi/models/submit.coi.model.js +9 -9
  32. package/src/saas/internal-api/coi/utils/utils.js +48 -48
  33. package/src/saas/internal-api/compliance/api/audit/audit.api.js +40 -40
  34. package/src/saas/internal-api/compliance/api/audit/audit.service.js +33 -33
  35. package/src/saas/internal-api/compliance/api/convert/convert.api.js +17 -17
  36. package/src/saas/internal-api/compliance/api/convert/convert.service.js +11 -11
  37. package/src/saas/internal-api/compliance/api/coverage/coverage.api.js +33 -33
  38. package/src/saas/internal-api/compliance/api/coverage/coverage.service.js +24 -24
  39. package/src/saas/internal-api/compliance/api/waive/waive.api.js +21 -21
  40. package/src/saas/internal-api/compliance/api/waive/waive.service.js +15 -15
  41. package/src/saas/internal-api/compliance/index.js +22 -22
  42. package/src/saas/internal-api/compliance/models/audit/audit.model.js +110 -110
  43. package/src/saas/internal-api/compliance/models/waive/waive.model.js +45 -45
  44. package/src/saas/internal-api/contractors/api/contractors.api.js +146 -159
  45. package/src/saas/internal-api/contractors/api/contractors.service.js +129 -136
  46. package/src/saas/internal-api/contractors/index.js +8 -8
  47. package/src/saas/internal-api/contractors/models/create.contractor.model.js +22 -22
  48. package/src/saas/internal-api/contractors/models/edit.contractor.model.js +74 -69
  49. package/src/saas/internal-api/contractors/models/verification.contractor.model.js +27 -27
  50. package/src/saas/internal-api/dbEmails/api/db.emails.api.js +25 -25
  51. package/src/saas/internal-api/dbEmails/api/db.emails.service.js +127 -19
  52. package/src/saas/internal-api/dbEmails/consts/consts.js +3 -0
  53. package/src/saas/internal-api/dbEmails/index.js +4 -3
  54. package/src/saas/internal-api/dbEmails/models/db.emails.model.js +21 -21
  55. package/src/saas/internal-api/dbEmails/utils/util.js +59 -0
  56. package/src/saas/internal-api/globalRecord/api/global.record.api.js +76 -76
  57. package/src/saas/internal-api/globalRecord/api/global.record.service.js +83 -83
  58. package/src/saas/internal-api/globalRecord/consts.js +20 -20
  59. package/src/saas/internal-api/globalRecord/index.js +6 -6
  60. package/src/saas/internal-api/globalRecord/models/global.record.model.js +43 -43
  61. package/src/saas/internal-api/globalRecord/utils/util.js +148 -148
  62. package/src/saas/internal-api/homepageCharts/api/charts.api.js +12 -12
  63. package/src/saas/internal-api/homepageCharts/api/charts.service.js +7 -7
  64. package/src/saas/internal-api/homepageCharts/index.js +3 -3
  65. package/src/saas/internal-api/projects/api/core/projects.api.js +39 -39
  66. package/src/saas/internal-api/projects/api/core/projects.service.js +65 -65
  67. package/src/saas/internal-api/projects/api/settings/project.settings.api.js +18 -18
  68. package/src/saas/internal-api/projects/api/settings/project.settings.service.js +17 -17
  69. package/src/saas/internal-api/projects/consts/defaultProject.js +3 -3
  70. package/src/saas/internal-api/projects/index.js +24 -24
  71. package/src/saas/internal-api/projects/models/core/create.project.model.js +41 -41
  72. package/src/saas/internal-api/projects/models/core/update.project.model.js +47 -47
  73. package/src/saas/internal-api/projects/models/settings/update.project.settings.model.js +39 -39
  74. package/src/saas/internal-api/projects/utils/utils.js +82 -82
  75. package/src/saas/internal-api/recordNotes/api/record.notes.api.js +38 -38
  76. package/src/saas/internal-api/recordNotes/api/record.notes.service.js +29 -29
  77. package/src/saas/internal-api/recordNotes/index.js +3 -3
  78. package/src/saas/internal-api/reports/api/reports.api.js +39 -39
  79. package/src/saas/internal-api/reports/api/reports.service.js +34 -34
  80. package/src/saas/internal-api/reports/consts/consts.js +63 -63
  81. package/src/saas/internal-api/reports/index.js +15 -15
  82. package/src/saas/internal-api/reports/models/report.model.js +27 -27
  83. package/src/saas/internal-api/requests/api/requests.api.js +28 -28
  84. package/src/saas/internal-api/requests/api/requests.service.js +19 -19
  85. package/src/saas/internal-api/requests/index.js +9 -11
  86. package/src/saas/internal-api/requests/models/tenant.request.model.js +9 -9
  87. package/src/saas/internal-api/requirements/api/requirements.api.js +27 -27
  88. package/src/saas/internal-api/requirements/api/requirements.service.js +23 -23
  89. package/src/saas/internal-api/requirements/index.js +6 -6
  90. package/src/saas/internal-api/requirements/models/create.requirement.model.js +45 -45
  91. package/src/saas/internal-api/serviceArea/api/coordinates.api.js +12 -12
  92. package/src/saas/internal-api/serviceArea/api/coordinates.service.js +7 -7
  93. package/src/saas/internal-api/serviceArea/index.js +4 -4
  94. package/src/saas/internal-api/serviceArea/utils/utils.js +8 -8
  95. package/src/saas/internal-api/tabs/api/tabs.api.js +32 -32
  96. package/src/saas/internal-api/tabs/api/tabs.service.js +54 -54
  97. package/src/saas/internal-api/tabs/index.js +3 -3
  98. package/src/saas/internal-api/tabs/models/tabs.model.js +18 -18
  99. package/src/saas/internal-api/thread-scheduler/runner.js +13 -13
  100. package/src/saas/internal-api/users/api/users.api.js +77 -78
  101. package/src/saas/internal-api/users/api/users.service.js +101 -101
  102. package/src/saas/internal-api/users/index.js +4 -4
  103. package/src/saas/internal-api/users/models/users.model.js +31 -31
  104. package/src/saas/internal-api/users/utils/util.js +14 -14
  105. package/src/saas/internal-api/vendorProfile/api/vendor.profile.api.js +20 -20
  106. package/src/saas/internal-api/vendorProfile/api/vendor.profile.service.js +14 -14
  107. package/src/saas/internal-api/vendorProfile/index.js +3 -3
  108. package/src/saas/openapi/accounts/accounts.api.js +17 -17
  109. package/src/saas/openapi/accounts/accounts.service.js +11 -11
  110. package/src/saas/openapi/projects/projects.api.js +59 -59
  111. package/src/saas/openapi/projects/projects.service.js +44 -44
  112. package/src/saas/openapi/requests/index.js +6 -0
  113. package/src/saas/openapi/{contractors/models/invite.contractor.model.js → requests/models/invite.request.model.js} +37 -37
  114. package/src/saas/openapi/requests/requests.api.js +20 -0
  115. package/src/saas/openapi/requests/requests.service.js +18 -0
  116. package/src/saas/openapi/requirements/index.js +6 -6
  117. package/src/saas/openapi/requirements/models/copy.requirement.model.js +10 -10
  118. package/src/saas/openapi/requirements/requirements.api.js +12 -12
  119. package/src/saas/openapi/requirements/requirements.service.js +20 -20
  120. package/src/saas/openapi/tabs/tabs.api.js +13 -13
  121. package/src/saas/openapi/tabs/tabs.service.js +7 -7
  122. package/tests/env.test.js +40 -40
  123. package/tests/validation.test.js +83 -83
  124. package/src/saas/internal-api/requests/models/edit.request.model.js +0 -31
  125. package/src/saas/internal-api/requests/models/validation.models.js +0 -8
  126. package/src/saas/openapi/contractors/contractors.api.js +0 -20
  127. package/src/saas/openapi/contractors/contractors.service.js +0 -18
  128. package/src/saas/openapi/contractors/index.js +0 -6
@@ -1,83 +1,83 @@
1
- const { expect } = require('chai');
2
-
3
- const { validateDateString, validateInteger, validateArray } = require('../src/common/validations/typeValidations');
4
- const VALID_DATE_STRINGS = Object.freeze([
5
- '2022-08-03T11:47:07.499Z',
6
- '2022-08-03T14:16:27.000+0000'
7
-
8
- ]);
9
- const INVALID_DATE_STRINGS = Object.freeze([
10
- '2022-08-03T11:47:07.',
11
- '2022-08-03T11:47:07.499Z1',
12
- '2022-08-03T11:47:07.Z',
13
- '2022-08-03T11:47:07.499Za',
14
- '2022-0803T11:47:07.499Z',
15
- '2022-08-03T100:47:07.499Z',
16
- '2022-08-03T11:4:07.499Z',
17
- '2022-08-03T11:47:7z.499Z',
18
- '2022-08-03T11:47:07.a499Z',
19
- '2022-0803T14:16:27.000+0000',
20
- '2022-08-03T14:16:27.000+000a',
21
- '2022-08-03T14:16:27.000+0000c',
22
- '2022-08-0314:16:27.000+0000',
23
- '2022-08-03x14:16:27.000+0000',
24
- '2022-08-03a14:16:27.000+0000',
25
- '2022-08-03T14:16:2.000+0000',
26
- 'asd1q2123'
27
- ]);
28
-
29
- describe('Validation | Test Validation functions', function() {
30
- it('Should validate date strings', () => {
31
- for (const dateString of VALID_DATE_STRINGS) {
32
- expect(() => validateDateString(dateString), `Expect string: '${dateString}' to pass date validation.`).to.not.throw(TypeError);
33
- }
34
- });
35
-
36
- it('Should throw error for invalid date strings', () => {
37
- for (const dateString of INVALID_DATE_STRINGS) {
38
- expect(() => validateDateString(dateString), `Expect string: '${dateString}' to fail date validation.`).to.throw(TypeError);
39
- }
40
- });
41
-
42
- it('Should throw error for invalid integers', () => {
43
- for (let i = -1; i < 3 ; i++) {
44
- const number = i.toString();
45
- expect(() => validateInteger(number)).to.throw(TypeError);
46
- expect(() => validateInteger(number, { min: 4 })).to.throw(TypeError);
47
- expect(() => validateInteger(number, { max: -11 })).to.throw(TypeError);
48
- expect(() => validateInteger(number, { min: -100, max: -5 })).to.throw(TypeError);
49
- }
50
- });
51
-
52
- it('Should throw error for out of range integers', () => {
53
- for (let i = -1; i < 3 ; i++) {
54
- expect(() => validateInteger(i, { min: 4 })).to.throw(RangeError);
55
- expect(() => validateInteger(i, { max: -11 })).to.throw(RangeError);
56
- expect(() => validateInteger(i, { min: -100, max: -5 })).to.throw(RangeError);
57
- }
58
- });
59
-
60
- it('Should throw error for invalid arrays', () => {
61
- expect(() => validateArray(undefined)).to.throw(TypeError);
62
- expect(() => validateArray(null)).to.throw(TypeError);
63
- expect(() => validateArray()).to.throw(TypeError);
64
- expect(() => validateArray({})).to.throw(TypeError);
65
- expect(() => validateArray({ 1: 2 })).to.throw(TypeError);
66
- expect(() => validateArray(new Set())).to.throw(TypeError);
67
- });
68
-
69
- it('Should not throw error for valid integers', () => {
70
- for (let i = -1; i < 3 ; i++) {
71
- expect(() => validateInteger(i)).to.not.throw();
72
- expect(() => validateInteger(i, { min: -4 })).to.not.throw();
73
- expect(() => validateInteger(i, { max: 5 })).to.not.throw();
74
- expect(() => validateInteger(i, { min: -100, max: 4 })).to.not.throw();
75
- }
76
- });
77
-
78
- it('Should not throw error for valid arrays', () => {
79
- expect(() => validateArray([])).to.not.throw(TypeError);
80
- expect(() => validateArray([1, 2, 3])).to.not.throw(TypeError);
81
- expect(() => validateArray(['a'])).to.not.throw(TypeError);
82
- });
83
- });
1
+ const { expect } = require('chai');
2
+
3
+ const { validateDateString, validateInteger, validateArray } = require('../src/common/validations/typeValidations');
4
+ const VALID_DATE_STRINGS = Object.freeze([
5
+ '2022-08-03T11:47:07.499Z',
6
+ '2022-08-03T14:16:27.000+0000'
7
+
8
+ ]);
9
+ const INVALID_DATE_STRINGS = Object.freeze([
10
+ '2022-08-03T11:47:07.',
11
+ '2022-08-03T11:47:07.499Z1',
12
+ '2022-08-03T11:47:07.Z',
13
+ '2022-08-03T11:47:07.499Za',
14
+ '2022-0803T11:47:07.499Z',
15
+ '2022-08-03T100:47:07.499Z',
16
+ '2022-08-03T11:4:07.499Z',
17
+ '2022-08-03T11:47:7z.499Z',
18
+ '2022-08-03T11:47:07.a499Z',
19
+ '2022-0803T14:16:27.000+0000',
20
+ '2022-08-03T14:16:27.000+000a',
21
+ '2022-08-03T14:16:27.000+0000c',
22
+ '2022-08-0314:16:27.000+0000',
23
+ '2022-08-03x14:16:27.000+0000',
24
+ '2022-08-03a14:16:27.000+0000',
25
+ '2022-08-03T14:16:2.000+0000',
26
+ 'asd1q2123'
27
+ ]);
28
+
29
+ describe('Validation | Test Validation functions', function() {
30
+ it('Should validate date strings', () => {
31
+ for (const dateString of VALID_DATE_STRINGS) {
32
+ expect(() => validateDateString(dateString), `Expect string: '${dateString}' to pass date validation.`).to.not.throw(TypeError);
33
+ }
34
+ });
35
+
36
+ it('Should throw error for invalid date strings', () => {
37
+ for (const dateString of INVALID_DATE_STRINGS) {
38
+ expect(() => validateDateString(dateString), `Expect string: '${dateString}' to fail date validation.`).to.throw(TypeError);
39
+ }
40
+ });
41
+
42
+ it('Should throw error for invalid integers', () => {
43
+ for (let i = -1; i < 3 ; i++) {
44
+ const number = i.toString();
45
+ expect(() => validateInteger(number)).to.throw(TypeError);
46
+ expect(() => validateInteger(number, { min: 4 })).to.throw(TypeError);
47
+ expect(() => validateInteger(number, { max: -11 })).to.throw(TypeError);
48
+ expect(() => validateInteger(number, { min: -100, max: -5 })).to.throw(TypeError);
49
+ }
50
+ });
51
+
52
+ it('Should throw error for out of range integers', () => {
53
+ for (let i = -1; i < 3 ; i++) {
54
+ expect(() => validateInteger(i, { min: 4 })).to.throw(RangeError);
55
+ expect(() => validateInteger(i, { max: -11 })).to.throw(RangeError);
56
+ expect(() => validateInteger(i, { min: -100, max: -5 })).to.throw(RangeError);
57
+ }
58
+ });
59
+
60
+ it('Should throw error for invalid arrays', () => {
61
+ expect(() => validateArray(undefined)).to.throw(TypeError);
62
+ expect(() => validateArray(null)).to.throw(TypeError);
63
+ expect(() => validateArray()).to.throw(TypeError);
64
+ expect(() => validateArray({})).to.throw(TypeError);
65
+ expect(() => validateArray({ 1: 2 })).to.throw(TypeError);
66
+ expect(() => validateArray(new Set())).to.throw(TypeError);
67
+ });
68
+
69
+ it('Should not throw error for valid integers', () => {
70
+ for (let i = -1; i < 3 ; i++) {
71
+ expect(() => validateInteger(i)).to.not.throw();
72
+ expect(() => validateInteger(i, { min: -4 })).to.not.throw();
73
+ expect(() => validateInteger(i, { max: 5 })).to.not.throw();
74
+ expect(() => validateInteger(i, { min: -100, max: 4 })).to.not.throw();
75
+ }
76
+ });
77
+
78
+ it('Should not throw error for valid arrays', () => {
79
+ expect(() => validateArray([])).to.not.throw(TypeError);
80
+ expect(() => validateArray([1, 2, 3])).to.not.throw(TypeError);
81
+ expect(() => validateArray(['a'])).to.not.throw(TypeError);
82
+ });
83
+ });
@@ -1,31 +0,0 @@
1
- const { validateType } = require('../../../../common/validations/typeValidations');
2
- const { validateContractorModel } = require('../models/validation.models');
3
-
4
- class RequestModel {
5
- constructor(id, record, tabModel, tenantRequest) {
6
- validateContractorModel(record);
7
- validateType(tabModel, TabModel);
8
- Object.keys(tenantRequest).length && validateType(tenantRequest, TenantRequestModel);
9
-
10
- this.id = id;
11
- this.record = record;
12
- this.tabModel = tabModel;
13
- this.tenantRequest = tenantRequest;
14
- }
15
- }
16
-
17
- class TenantRequestModel {
18
- constructor(id, companyName, emailAddress) {
19
- this.id = id;
20
- this.companyName = companyName;
21
- this.emailAddress = emailAddress;
22
- }
23
- }
24
-
25
- class TabModel {
26
- constructor(type) {
27
- this.type = type;
28
- }
29
- }
30
-
31
- module.exports = { RequestModel, TabModel, TenantRequestModel };
@@ -1,8 +0,0 @@
1
- const { validateType } = require('../../../../common/validations/typeValidations');
2
- const { ContractorModel } = require('../../contractors/models/edit.contractor.model');
3
-
4
- function validateContractorModel(record) {
5
- validateType(record, ContractorModel);
6
- }
7
-
8
- module.exports = { validateContractorModel };
@@ -1,20 +0,0 @@
1
- const requests = require('../../../common/requests/apiKeyAuth/requests');
2
- const { openapiUrl } = require('../../../env').getEnv();
3
- const { isLocalhost } = require('../../../env');
4
-
5
- const contractorUrl = isLocalhost() ? 'contractors' : 'records';
6
-
7
- const Endpoints = {
8
- getAllContractors: `${openapiUrl}/${contractorUrl}/all`,
9
- inviteContractor: tabId => `${openapiUrl}/tabs/${tabId}/${contractorUrl}`
10
- };
11
-
12
- const getAllContractors = async (apiKey, params) => {
13
- return requests.getRequestHandler(Endpoints.getAllContractors, apiKey, params).then(res => res.data);
14
- };
15
-
16
- const inviteContractor = async (apiKey, tabId, params) => {
17
- return requests.postRequestHandler(Endpoints.inviteContractor(tabId), apiKey, params).then(res => res.data);
18
- };
19
-
20
- module.exports = { getAllContractors, inviteContractor };
@@ -1,18 +0,0 @@
1
- const contractorsApi = require('./contractors.api');
2
- const { InviteContractorModel } = require('./models/invite.contractor.model');
3
- const { validateType } = require('../../../common/validations/typeValidations');
4
-
5
- const getContractors = async (apiKey, { projectId, type, activationStatuses } = {}) => {
6
- if (activationStatuses) {
7
- activationStatuses = activationStatuses.reduce((f, s) => `${f},${s}`);
8
- }
9
-
10
- return contractorsApi.getAllContractors(apiKey, { propertyId: projectId, type, activationStatuses });
11
- };
12
-
13
- const inviteContractor = async (apiKey, tabId, inviteContractorModel = {}) => {
14
- validateType(inviteContractorModel, InviteContractorModel);
15
- return contractorsApi.inviteContractor(apiKey, tabId, inviteContractorModel);
16
- };
17
-
18
- module.exports = { getContractors, inviteContractor };
@@ -1,6 +0,0 @@
1
- const services = require('./contractors.service');
2
-
3
- const InviteContractorModel = require('./models/invite.contractor.model');
4
- const models = { InviteContractorModel };
5
-
6
- module.exports = { ... services, models };