@contrail/flexplm 1.2.1 → 1.3.0-alpha.04c91a9

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 (125) hide show
  1. package/.github/pull_request_template.md +31 -31
  2. package/.github/workflows/flexplm-lib.yml +27 -27
  3. package/.github/workflows/publish-to-npm.yml +131 -0
  4. package/CHANGELOG.md +10 -0
  5. package/lib/entity-processor/base-entity-processor.d.ts +42 -42
  6. package/lib/entity-processor/base-entity-processor.js +385 -363
  7. package/lib/entity-processor/base-entity-processor.spec.d.ts +1 -1
  8. package/lib/entity-processor/base-entity-processor.spec.js +397 -302
  9. package/lib/flexplm-request.d.ts +3 -3
  10. package/lib/flexplm-request.js +34 -34
  11. package/lib/flexplm-utils.d.ts +5 -5
  12. package/lib/flexplm-utils.js +33 -33
  13. package/lib/flexplm-utils.spec.d.ts +1 -1
  14. package/lib/flexplm-utils.spec.js +26 -26
  15. package/lib/index.d.ts +22 -22
  16. package/lib/index.js +38 -38
  17. package/lib/interfaces/interfaces.d.ts +105 -105
  18. package/lib/interfaces/interfaces.js +2 -2
  19. package/lib/interfaces/item-family-changes.d.ts +20 -20
  20. package/lib/interfaces/item-family-changes.js +56 -56
  21. package/lib/interfaces/publish-change-data.d.ts +19 -19
  22. package/lib/interfaces/publish-change-data.js +32 -32
  23. package/lib/publish/base-process-publish-assortment-callback.d.ts +9 -9
  24. package/lib/publish/base-process-publish-assortment-callback.js +38 -38
  25. package/lib/publish/base-process-publish-assortment.d.ts +93 -93
  26. package/lib/publish/base-process-publish-assortment.js +944 -944
  27. package/lib/publish/base-process-publish-assortment.spec.d.ts +1 -1
  28. package/lib/publish/base-process-publish-assortment.spec.js +1670 -1670
  29. package/lib/publish/mockData.d.ts +1389 -1389
  30. package/lib/publish/mockData.js +4519 -4519
  31. package/lib/transform/identifier-conversion-spec-mockData.js +444 -444
  32. package/lib/transform/identifier-conversion.d.ts +15 -15
  33. package/lib/transform/identifier-conversion.js +212 -212
  34. package/lib/transform/identifier-conversion.spec.d.ts +1 -1
  35. package/lib/transform/identifier-conversion.spec.js +339 -339
  36. package/lib/util/config-defaults.d.ts +8 -8
  37. package/lib/util/config-defaults.js +85 -85
  38. package/lib/util/config-defaults.spec.d.ts +1 -1
  39. package/lib/util/config-defaults.spec.js +293 -293
  40. package/lib/util/data-converter-spec-mockData.js +205 -205
  41. package/lib/util/data-converter.d.ts +39 -39
  42. package/lib/util/data-converter.js +592 -592
  43. package/lib/util/data-converter.spec.d.ts +1 -1
  44. package/lib/util/data-converter.spec.js +904 -904
  45. package/lib/util/error-response-object.d.ts +4 -4
  46. package/lib/util/error-response-object.js +47 -47
  47. package/lib/util/error-response-object.spec.d.ts +1 -1
  48. package/lib/util/error-response-object.spec.js +99 -99
  49. package/lib/util/event-short-message-status.d.ts +19 -18
  50. package/lib/util/event-short-message-status.js +23 -22
  51. package/lib/util/federation.d.ts +15 -15
  52. package/lib/util/federation.js +149 -149
  53. package/lib/util/flexplm-connect.d.ts +22 -18
  54. package/lib/util/flexplm-connect.js +176 -171
  55. package/lib/util/flexplm-connect.spec.d.ts +1 -0
  56. package/lib/util/flexplm-connect.spec.js +88 -0
  57. package/lib/util/logger-config.d.ts +1 -1
  58. package/lib/util/logger-config.js +26 -26
  59. package/lib/util/map-util-spec-mockData.js +205 -205
  60. package/lib/util/map-utils.d.ts +6 -6
  61. package/lib/util/map-utils.js +15 -15
  62. package/lib/util/map-utils.spec.d.ts +1 -1
  63. package/lib/util/map-utils.spec.js +89 -89
  64. package/lib/util/mockData.d.ts +80 -79
  65. package/lib/util/mockData.js +103 -99
  66. package/lib/util/thumbnail-util.d.ts +34 -19
  67. package/lib/util/thumbnail-util.js +215 -114
  68. package/lib/util/thumbnail-util.spec.d.ts +1 -1
  69. package/lib/util/thumbnail-util.spec.js +434 -242
  70. package/lib/util/type-conversion-utils-spec-mockData.js +259 -241
  71. package/lib/util/type-conversion-utils.d.ts +23 -21
  72. package/lib/util/type-conversion-utils.js +265 -223
  73. package/lib/util/type-conversion-utils.spec.d.ts +1 -1
  74. package/lib/util/type-conversion-utils.spec.js +868 -708
  75. package/lib/util/type-defaults.d.ts +16 -16
  76. package/lib/util/type-defaults.js +221 -221
  77. package/lib/util/type-defaults.spec.d.ts +1 -1
  78. package/lib/util/type-defaults.spec.js +516 -516
  79. package/lib/util/type-utils.d.ts +13 -13
  80. package/lib/util/type-utils.js +114 -114
  81. package/lib/util/type-utils.spec.d.ts +1 -1
  82. package/lib/util/type-utils.spec.js +190 -190
  83. package/package.json +1 -1
  84. package/publish.bat +4 -4
  85. package/publish.sh +4 -4
  86. package/src/entity-processor/base-entity-processor.spec.ts +122 -0
  87. package/src/entity-processor/base-entity-processor.ts +31 -2
  88. package/src/flexplm-request.ts +28 -28
  89. package/src/flexplm-utils.spec.ts +27 -27
  90. package/src/flexplm-utils.ts +29 -29
  91. package/src/index.ts +21 -21
  92. package/src/interfaces/item-family-changes.ts +66 -66
  93. package/src/interfaces/publish-change-data.ts +42 -42
  94. package/src/publish/base-process-publish-assortment-callback.ts +50 -50
  95. package/src/transform/identifier-conversion-spec-mockData.ts +495 -495
  96. package/src/transform/identifier-conversion.spec.ts +353 -353
  97. package/src/transform/identifier-conversion.ts +281 -281
  98. package/src/util/config-defaults.spec.ts +350 -350
  99. package/src/util/config-defaults.ts +92 -92
  100. package/src/util/data-converter-spec-mockData.ts +230 -230
  101. package/src/util/error-response-object.spec.ts +115 -115
  102. package/src/util/error-response-object.ts +49 -49
  103. package/src/util/event-short-message-status.ts +1 -0
  104. package/src/util/federation.ts +172 -172
  105. package/src/util/flexplm-connect.spec.ts +132 -0
  106. package/src/util/flexplm-connect.ts +14 -5
  107. package/src/util/logger-config.ts +19 -19
  108. package/src/util/map-util-spec-mockData.ts +230 -230
  109. package/src/util/map-utils.spec.ts +102 -102
  110. package/src/util/map-utils.ts +40 -40
  111. package/src/util/mockData.ts +101 -97
  112. package/src/util/thumbnail-util.spec.ts +239 -0
  113. package/src/util/thumbnail-util.ts +140 -5
  114. package/src/util/type-conversion-utils-spec-mockData.ts +18 -0
  115. package/src/util/type-conversion-utils.spec.ts +184 -0
  116. package/src/util/type-conversion-utils.ts +75 -1
  117. package/src/util/type-defaults.spec.ts +668 -668
  118. package/src/util/type-defaults.ts +280 -280
  119. package/src/util/type-utils.spec.ts +227 -227
  120. package/src/util/type-utils.ts +144 -144
  121. package/tsconfig.json +23 -26
  122. package/tslint.json +57 -57
  123. package/.claude/settings.local.json +0 -8
  124. package/scripts/output.png +0 -0
  125. package/scripts/test-get-request.ts +0 -35
@@ -1,231 +1,231 @@
1
- 'use strict';
2
- Object.defineProperty(exports, '__esModule', { value: true });
3
- exports.mapping = {
4
- typeConversion: {
5
- vibe2flex: {
6
- 'custom-entity': {
7
- getMapKey: (entity) =>{
8
- const typePath = entity['typePath'];
9
- let mapKey = '';
10
- switch (typePath) {
11
- case 'custom-entity:pack':
12
- mapKey = 'packaging';
13
- break;
14
- case 'custom-entity:prefix':
15
- mapKey = 'prefix';
16
- break;
17
- case 'custom-entity:catName':
18
- mapKey = 'catName';
19
- break;
20
- case 'custom-entity:partnerOrg':
21
- mapKey = 'partnerOrg';
22
- break;
23
- case 'custom-entity:catFamily':
24
- mapKey = 'catFamily';
25
- break;
26
- case 'custom-entity:formName':
27
- mapKey = 'formName';
28
- break;
29
- }
30
-
31
- return mapKey;
32
- }
33
- }
34
- }
35
- // flex2vibe: {
36
- // LCSRevisableEntity: {
37
- // getMapKey: (object) =>{ return object;}
38
- // },
39
- // LCSLast: {
40
- // getMapKey: (object) => {return object;}
41
- // },
42
- // LCSMaterial: {
43
- // getMapKey: (object) =>{ return object;}
44
- // },
45
- // LCSBusinessObject: {
46
- // getMapKey: (object) => {return object;}
47
- // }
48
- // },
49
- },
50
- LCSProduct: {
51
- vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
52
- vibe2flex: {
53
- getClass: () => 'LCSProduct',
54
- getSoftType: (entity /*, dependencies*/) =>{
55
- const prodType = entity['prodType'];
56
- let val = '';
57
- switch (prodType) {
58
- case 'acc':
59
- val = 'Product\\Accesories';
60
- break;
61
- case 'app':
62
- val = 'Product\\Apparel';
63
- break;
64
- case 'eqp':
65
- val = 'Product\\Equipment';
66
- break;
67
- case 'foot':
68
- val = 'Product\\Footwear';
69
- break;
70
- }
71
-
72
- return val;
73
- },
74
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }, { processor: 'VALUE_TRANSFORM', functionTransformersKey: 'valueTransform' }],
75
- rekey: {
76
- productName: 'name',
77
- vibeIQIdentifier: 'itemNumber'
78
- },
79
- valueTransform: {
80
- transformEx: (row/*, dependencies*/) => {
81
- return row['otherProp'] + 'xxx';
82
- }
83
- }
84
-
85
- },
86
- flex2vibe: {
87
- getClass: () => 'item',
88
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
89
- rekey: {
90
- itemNumber: 'vibeIQIdentifier',
91
- name: 'productName',
92
- }
93
- }
94
- },
95
- LCSSKU: {
96
- vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
97
- vibe2flex: {
98
- getClass: () => 'LCSSKU',
99
- getSoftType: (entity /*, dependencies*/) =>{
100
- const prodType = entity['prodType'];
101
- let val = '';
102
- switch (prodType) {
103
- case 'acc':
104
- val = 'Product\\Accesories';
105
- break;
106
- case 'app':
107
- val = 'Product\\Apparel';
108
- break;
109
- case 'eqp':
110
- val = 'Product\\Equipment';
111
- break;
112
- case 'foot':
113
- val = 'Product\\Footwear';
114
- break;
115
- }
116
-
117
- return val;
118
- },
119
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
120
- rekey: {
121
- skuName: 'optionName',
122
- vibeIQIdentifier: 'itemNumber'
123
- }
124
- },
125
- flex2vibe: {
126
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
127
- rekey: {
128
- itemNumber: 'vibeIQIdentifier',
129
- optionName: 'skuName',
130
- }
131
- }
132
- },
133
-
134
- packaging: {
135
- vibe2flex: {
136
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
137
- rekey: {
138
- retailPackType: 'packType',
139
- retailIntroDate: 'introDate'
140
- },
141
- getSoftType: () => 'Revisable Entity\\packaging',
142
- getClass: () => 'LCSRevisableEntity'
143
- },
144
- flex2vibe: {
145
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
146
- rekey: {
147
- packType: 'retailPackType',
148
- introDate: 'retailIntroDate'
149
- },
150
- getClass: () => 'custom-entity',
151
- getSoftType: () => 'custom-entity:pack',
152
-
153
- }
154
- },
155
- prefix: {
156
- vibe2flex: {
157
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
158
- rekey: {
159
- retailOwner: 'owner',
160
- retailIntroDate: 'introDate'
161
- },
162
- getSoftType: () => 'Revisable Entity\\prefix',
163
- getClass: () => 'LCSRevisableEntity'
164
- },
165
- flex2vibe: {
166
- transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
167
- rekey: {
168
- owner: 'retailOwner',
169
- introDate: 'retailIntroDate'
170
- },
171
- getClass: () => 'custom-entity',
172
- getSoftType: () => 'custom-entity:prefix',
173
-
174
- }
175
- },
176
- catName: {
177
- getIdentifierProperties: () => ['catName', 'catNumber'],
178
- getInformationalProperties: () => ['longName'],
179
- vibe2flex: {
180
- transformOrder: [],
181
- getSoftType: () => 'Revisable Entity\\catName',
182
- getClass: () => 'LCSLast'
183
- },
184
- flex2vibe: {
185
- transformOrder: [],
186
- getClass: () => 'custom-entity',
187
- getSoftType: () => 'custom-entity:catName',
188
-
189
- }
190
- },
191
- partnerOrg: {
192
- vibe2flex: {
193
- transformOrder: [],
194
- getSoftType: () => 'Business Object\\partnerOrg',
195
- getClass: () => 'LCSLifecycleManaged'
196
- },
197
- flex2vibe: {
198
- transformOrder: [],
199
- getClass: () => 'custom-entity',
200
- getSoftType: () => 'custom-entity:partnerOrg',
201
-
202
- }
203
- },
204
- catFamily: {
205
- vibe2flex: {
206
- transformOrder: [],
207
- getSoftType: () => 'Revisable Entity\\catFamily',
208
- getClass: () => 'LCSRevisableEntity'
209
- },
210
- flex2vibe: {
211
- transformOrder: [],
212
- getClass: () => 'custom-entity',
213
- getSoftType: () => 'custom-entity:catFamily',
214
-
215
- }
216
- },
217
- formName: {
218
- vibe2flex: {
219
- transformOrder: [],
220
- getSoftType: () => 'Material\\form',
221
- getClass: () => 'LCSMaterial'
222
- },
223
- flex2vibe: {
224
- transformOrder: [],
225
- getClass: () => 'custom-entity',
226
- getSoftType: () => 'custom-entity:formName',
227
-
228
- }
229
- },
230
-
1
+ 'use strict';
2
+ Object.defineProperty(exports, '__esModule', { value: true });
3
+ exports.mapping = {
4
+ typeConversion: {
5
+ vibe2flex: {
6
+ 'custom-entity': {
7
+ getMapKey: (entity) =>{
8
+ const typePath = entity['typePath'];
9
+ let mapKey = '';
10
+ switch (typePath) {
11
+ case 'custom-entity:pack':
12
+ mapKey = 'packaging';
13
+ break;
14
+ case 'custom-entity:prefix':
15
+ mapKey = 'prefix';
16
+ break;
17
+ case 'custom-entity:catName':
18
+ mapKey = 'catName';
19
+ break;
20
+ case 'custom-entity:partnerOrg':
21
+ mapKey = 'partnerOrg';
22
+ break;
23
+ case 'custom-entity:catFamily':
24
+ mapKey = 'catFamily';
25
+ break;
26
+ case 'custom-entity:formName':
27
+ mapKey = 'formName';
28
+ break;
29
+ }
30
+
31
+ return mapKey;
32
+ }
33
+ }
34
+ }
35
+ // flex2vibe: {
36
+ // LCSRevisableEntity: {
37
+ // getMapKey: (object) =>{ return object;}
38
+ // },
39
+ // LCSLast: {
40
+ // getMapKey: (object) => {return object;}
41
+ // },
42
+ // LCSMaterial: {
43
+ // getMapKey: (object) =>{ return object;}
44
+ // },
45
+ // LCSBusinessObject: {
46
+ // getMapKey: (object) => {return object;}
47
+ // }
48
+ // },
49
+ },
50
+ LCSProduct: {
51
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
52
+ vibe2flex: {
53
+ getClass: () => 'LCSProduct',
54
+ getSoftType: (entity /*, dependencies*/) =>{
55
+ const prodType = entity['prodType'];
56
+ let val = '';
57
+ switch (prodType) {
58
+ case 'acc':
59
+ val = 'Product\\Accesories';
60
+ break;
61
+ case 'app':
62
+ val = 'Product\\Apparel';
63
+ break;
64
+ case 'eqp':
65
+ val = 'Product\\Equipment';
66
+ break;
67
+ case 'foot':
68
+ val = 'Product\\Footwear';
69
+ break;
70
+ }
71
+
72
+ return val;
73
+ },
74
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }, { processor: 'VALUE_TRANSFORM', functionTransformersKey: 'valueTransform' }],
75
+ rekey: {
76
+ productName: 'name',
77
+ vibeIQIdentifier: 'itemNumber'
78
+ },
79
+ valueTransform: {
80
+ transformEx: (row/*, dependencies*/) => {
81
+ return row['otherProp'] + 'xxx';
82
+ }
83
+ }
84
+
85
+ },
86
+ flex2vibe: {
87
+ getClass: () => 'item',
88
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
89
+ rekey: {
90
+ itemNumber: 'vibeIQIdentifier',
91
+ name: 'productName',
92
+ }
93
+ }
94
+ },
95
+ LCSSKU: {
96
+ vibeOwningKeys: ['itemNumber', 'lifecycleStage'],
97
+ vibe2flex: {
98
+ getClass: () => 'LCSSKU',
99
+ getSoftType: (entity /*, dependencies*/) =>{
100
+ const prodType = entity['prodType'];
101
+ let val = '';
102
+ switch (prodType) {
103
+ case 'acc':
104
+ val = 'Product\\Accesories';
105
+ break;
106
+ case 'app':
107
+ val = 'Product\\Apparel';
108
+ break;
109
+ case 'eqp':
110
+ val = 'Product\\Equipment';
111
+ break;
112
+ case 'foot':
113
+ val = 'Product\\Footwear';
114
+ break;
115
+ }
116
+
117
+ return val;
118
+ },
119
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
120
+ rekey: {
121
+ skuName: 'optionName',
122
+ vibeIQIdentifier: 'itemNumber'
123
+ }
124
+ },
125
+ flex2vibe: {
126
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
127
+ rekey: {
128
+ itemNumber: 'vibeIQIdentifier',
129
+ optionName: 'skuName',
130
+ }
131
+ }
132
+ },
133
+
134
+ packaging: {
135
+ vibe2flex: {
136
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
137
+ rekey: {
138
+ retailPackType: 'packType',
139
+ retailIntroDate: 'introDate'
140
+ },
141
+ getSoftType: () => 'Revisable Entity\\packaging',
142
+ getClass: () => 'LCSRevisableEntity'
143
+ },
144
+ flex2vibe: {
145
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
146
+ rekey: {
147
+ packType: 'retailPackType',
148
+ introDate: 'retailIntroDate'
149
+ },
150
+ getClass: () => 'custom-entity',
151
+ getSoftType: () => 'custom-entity:pack',
152
+
153
+ }
154
+ },
155
+ prefix: {
156
+ vibe2flex: {
157
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
158
+ rekey: {
159
+ retailOwner: 'owner',
160
+ retailIntroDate: 'introDate'
161
+ },
162
+ getSoftType: () => 'Revisable Entity\\prefix',
163
+ getClass: () => 'LCSRevisableEntity'
164
+ },
165
+ flex2vibe: {
166
+ transformOrder: [{ processor: 'REKEY', rekeyDelete: true, rekeyTransformersKey: 'rekey' }],
167
+ rekey: {
168
+ owner: 'retailOwner',
169
+ introDate: 'retailIntroDate'
170
+ },
171
+ getClass: () => 'custom-entity',
172
+ getSoftType: () => 'custom-entity:prefix',
173
+
174
+ }
175
+ },
176
+ catName: {
177
+ getIdentifierProperties: () => ['catName', 'catNumber'],
178
+ getInformationalProperties: () => ['longName'],
179
+ vibe2flex: {
180
+ transformOrder: [],
181
+ getSoftType: () => 'Revisable Entity\\catName',
182
+ getClass: () => 'LCSLast'
183
+ },
184
+ flex2vibe: {
185
+ transformOrder: [],
186
+ getClass: () => 'custom-entity',
187
+ getSoftType: () => 'custom-entity:catName',
188
+
189
+ }
190
+ },
191
+ partnerOrg: {
192
+ vibe2flex: {
193
+ transformOrder: [],
194
+ getSoftType: () => 'Business Object\\partnerOrg',
195
+ getClass: () => 'LCSLifecycleManaged'
196
+ },
197
+ flex2vibe: {
198
+ transformOrder: [],
199
+ getClass: () => 'custom-entity',
200
+ getSoftType: () => 'custom-entity:partnerOrg',
201
+
202
+ }
203
+ },
204
+ catFamily: {
205
+ vibe2flex: {
206
+ transformOrder: [],
207
+ getSoftType: () => 'Revisable Entity\\catFamily',
208
+ getClass: () => 'LCSRevisableEntity'
209
+ },
210
+ flex2vibe: {
211
+ transformOrder: [],
212
+ getClass: () => 'custom-entity',
213
+ getSoftType: () => 'custom-entity:catFamily',
214
+
215
+ }
216
+ },
217
+ formName: {
218
+ vibe2flex: {
219
+ transformOrder: [],
220
+ getSoftType: () => 'Material\\form',
221
+ getClass: () => 'LCSMaterial'
222
+ },
223
+ flex2vibe: {
224
+ transformOrder: [],
225
+ getClass: () => 'custom-entity',
226
+ getSoftType: () => 'custom-entity:formName',
227
+
228
+ }
229
+ },
230
+
231
231
  };
@@ -1,103 +1,103 @@
1
-
2
- const maps = require('./map-util-spec-mockData').mapping;
3
-
4
- const mockData = {
5
- file1: maps
6
- };
7
-
8
- const mockGetMapFileFunction = jest.fn(async (fileId) =>{
9
- return mockData[fileId];
10
- });
11
-
12
-
13
- import { Entities } from '@contrail/sdk';
14
- import { MapFileUtil } from '@contrail/transform-data';
15
- import { MapUtil } from './map-utils';
16
-
17
- describe('getMapKey', () =>{
18
- const transformMapFile = 'file1';
19
- const mapFileUtil = new MapFileUtil(new Entities());
20
- let spy;
21
- beforeAll(() =>{
22
- spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
23
- });
24
- beforeEach(()=>{
25
- spy.mockClear();
26
- });
27
- afterAll(() =>{
28
- spy.mockRestore();
29
- });
30
- it('custom-entity:pack', async () =>{
31
- const entity = {
32
- typePath: 'custom-entity:pack',
33
- entityType: 'custom-entity'
34
- }
35
- const expectedMapKey = 'packaging';
36
-
37
- const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
38
- expect(results).toEqual(expectedMapKey);
39
- });
40
-
41
- it('custom-entity:prefix', async () =>{
42
- const entity = {
43
- typePath: 'custom-entity:prefix',
44
- entityType: 'custom-entity'
45
- }
46
- const expectedMapKey = 'prefix';
47
-
48
- const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
49
- expect(results).toEqual(expectedMapKey);
50
- });
51
-
52
- it('color - no mapping exists', async () =>{
53
- const entity = {
54
- typePath: 'color',
55
- entityType: 'color'
56
- }
57
- const expectedMapKey = undefined;
58
-
59
- const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
60
- expect(results).toEqual(expectedMapKey);
61
- });
62
-
63
- });
64
-
65
- describe('getFullMapSection', () =>{
66
- const transformMapFile = 'file1';
67
- const mapFileUtil = new MapFileUtil(new Entities());
68
- let spy;
69
- beforeAll(() =>{
70
- spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
71
- });
72
- beforeEach(()=>{
73
- spy.mockClear();
74
- });
75
- afterAll(() =>{
76
- spy.mockRestore();
77
- });
78
- it('custom-entity:pack', async () =>{
79
- const mapKey = 'packaging';
80
-
81
- const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
82
- expect(mapSection).toHaveProperty('vibe2flex');
83
- expect(mapSection).toHaveProperty('flex2vibe');
84
- });
85
-
86
- it('custom-entity:catName', async () =>{
87
- const mapKey = 'catName';
88
-
89
- const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
90
- expect(mapSection).toHaveProperty('vibe2flex');
91
- expect(mapSection).toHaveProperty('flex2vibe');
92
- expect(mapSection).toHaveProperty('getIdentifierProperties');
93
- expect(mapSection).toHaveProperty('getInformationalProperties');
94
- });
95
-
96
- it('color - no mapping exists', async () =>{
97
- const mapKey = 'color';
98
-
99
- const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
100
- expect(mapSection).toBeUndefined();
101
- });
102
-
1
+
2
+ const maps = require('./map-util-spec-mockData').mapping;
3
+
4
+ const mockData = {
5
+ file1: maps
6
+ };
7
+
8
+ const mockGetMapFileFunction = jest.fn(async (fileId) =>{
9
+ return mockData[fileId];
10
+ });
11
+
12
+
13
+ import { Entities } from '@contrail/sdk';
14
+ import { MapFileUtil } from '@contrail/transform-data';
15
+ import { MapUtil } from './map-utils';
16
+
17
+ describe('getMapKey', () =>{
18
+ const transformMapFile = 'file1';
19
+ const mapFileUtil = new MapFileUtil(new Entities());
20
+ let spy;
21
+ beforeAll(() =>{
22
+ spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
23
+ });
24
+ beforeEach(()=>{
25
+ spy.mockClear();
26
+ });
27
+ afterAll(() =>{
28
+ spy.mockRestore();
29
+ });
30
+ it('custom-entity:pack', async () =>{
31
+ const entity = {
32
+ typePath: 'custom-entity:pack',
33
+ entityType: 'custom-entity'
34
+ }
35
+ const expectedMapKey = 'packaging';
36
+
37
+ const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
38
+ expect(results).toEqual(expectedMapKey);
39
+ });
40
+
41
+ it('custom-entity:prefix', async () =>{
42
+ const entity = {
43
+ typePath: 'custom-entity:prefix',
44
+ entityType: 'custom-entity'
45
+ }
46
+ const expectedMapKey = 'prefix';
47
+
48
+ const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
49
+ expect(results).toEqual(expectedMapKey);
50
+ });
51
+
52
+ it('color - no mapping exists', async () =>{
53
+ const entity = {
54
+ typePath: 'color',
55
+ entityType: 'color'
56
+ }
57
+ const expectedMapKey = undefined;
58
+
59
+ const results:string = await MapUtil.getMapKey(transformMapFile, mapFileUtil, entity, entity.entityType, 'vibe2flex');;
60
+ expect(results).toEqual(expectedMapKey);
61
+ });
62
+
63
+ });
64
+
65
+ describe('getFullMapSection', () =>{
66
+ const transformMapFile = 'file1';
67
+ const mapFileUtil = new MapFileUtil(new Entities());
68
+ let spy;
69
+ beforeAll(() =>{
70
+ spy = jest.spyOn(mapFileUtil, 'getMapFile').mockImplementation(mockGetMapFileFunction);
71
+ });
72
+ beforeEach(()=>{
73
+ spy.mockClear();
74
+ });
75
+ afterAll(() =>{
76
+ spy.mockRestore();
77
+ });
78
+ it('custom-entity:pack', async () =>{
79
+ const mapKey = 'packaging';
80
+
81
+ const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
82
+ expect(mapSection).toHaveProperty('vibe2flex');
83
+ expect(mapSection).toHaveProperty('flex2vibe');
84
+ });
85
+
86
+ it('custom-entity:catName', async () =>{
87
+ const mapKey = 'catName';
88
+
89
+ const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
90
+ expect(mapSection).toHaveProperty('vibe2flex');
91
+ expect(mapSection).toHaveProperty('flex2vibe');
92
+ expect(mapSection).toHaveProperty('getIdentifierProperties');
93
+ expect(mapSection).toHaveProperty('getInformationalProperties');
94
+ });
95
+
96
+ it('color - no mapping exists', async () =>{
97
+ const mapKey = 'color';
98
+
99
+ const mapSection = await MapUtil.getFullMapSection(transformMapFile, mapFileUtil, mapKey);
100
+ expect(mapSection).toBeUndefined();
101
+ });
102
+
103
103
  });