mcdev 5.0.1 → 5.1.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 (138) hide show
  1. package/.coverage-comment-template.svelte +177 -161
  2. package/.eslintrc.json +1 -0
  3. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  4. package/.github/dependabot.yml +8 -0
  5. package/.github/workflows/coverage-base-update.yml +6 -2
  6. package/.github/workflows/coverage-develop-branch.yml +7 -6
  7. package/.github/workflows/coverage-main-branch.yml +7 -6
  8. package/.github/workflows/coverage.yml +7 -2
  9. package/.husky/commit-msg +1 -1
  10. package/.husky/post-checkout +35 -3
  11. package/.husky/post-merge +21 -0
  12. package/.husky/pre-commit +1 -0
  13. package/docs/dist/documentation.md +222 -62
  14. package/lib/Deployer.js +3 -4
  15. package/lib/cli.js +36 -8
  16. package/lib/index.js +175 -3
  17. package/lib/metadataTypes/Asset.js +4 -2
  18. package/lib/metadataTypes/Automation.js +413 -195
  19. package/lib/metadataTypes/DataExtension.js +6 -8
  20. package/lib/metadataTypes/DataExtensionField.js +5 -5
  21. package/lib/metadataTypes/Journey.js +11 -10
  22. package/lib/metadataTypes/MetadataType.js +76 -22
  23. package/lib/metadataTypes/MobileKeyword.js +165 -20
  24. package/lib/metadataTypes/MobileMessage.js +20 -28
  25. package/lib/metadataTypes/Query.js +26 -0
  26. package/lib/metadataTypes/Role.js +2 -3
  27. package/lib/metadataTypes/TransactionalSMS.js +5 -5
  28. package/lib/metadataTypes/User.js +3 -17
  29. package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
  30. package/lib/metadataTypes/definitions/Automation.definition.js +52 -6
  31. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  32. package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
  33. package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
  34. package/lib/metadataTypes/definitions/Event.definition.js +1 -0
  35. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  36. package/lib/metadataTypes/definitions/ImportFile.definition.js +1 -0
  37. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +20 -7
  38. package/lib/metadataTypes/definitions/MobileMessage.definition.js +50 -8
  39. package/lib/metadataTypes/definitions/Query.definition.js +1 -0
  40. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  41. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
  42. package/lib/metadataTypes/definitions/User.definition.js +2 -0
  43. package/lib/util/auth.js +4 -1
  44. package/lib/util/cli.js +1 -1
  45. package/lib/util/devops.js +13 -11
  46. package/lib/util/file.js +5 -3
  47. package/lib/util/util.js +153 -129
  48. package/package.json +11 -11
  49. package/test/general.test.js +26 -0
  50. package/test/mockRoot/.mcdevrc.json +3 -1
  51. package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +53 -0
  52. package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +46 -0
  53. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword.mobileKeyword-meta.json → 4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.json} +1 -4
  54. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword_blocked.mobileKeyword-meta.json → 4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.json} +1 -4
  55. package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
  56. package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
  57. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +1 -1
  58. package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +1 -1
  59. package/test/resourceFactory.js +64 -21
  60. package/test/resources/1111111/user/retrieve-expected.md +19 -0
  61. package/test/resources/9999999/automation/build-expected.json +58 -0
  62. package/test/resources/9999999/automation/create-expected.json +46 -0
  63. package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
  64. package/test/resources/9999999/automation/delete-response.xml +40 -0
  65. package/test/resources/9999999/automation/retrieve-expected.json +58 -0
  66. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
  67. package/test/resources/9999999/automation/template-expected.json +58 -0
  68. package/test/resources/9999999/automation/update-expected.json +46 -0
  69. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
  70. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  71. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -0
  72. package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
  73. package/test/resources/9999999/automation/v1/automations/post-response.json +85 -0
  74. package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
  75. package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -0
  76. package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -0
  77. package/test/resources/9999999/automation/v1/filetransfers/get-response.json +15 -0
  78. package/test/resources/9999999/automation/v1/imports/get-response.json +38 -0
  79. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/actions/start/post-response.txt +1 -0
  80. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
  81. package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
  82. package/test/resources/9999999/automation/v1/queries/get-response.json +4 -4
  83. package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
  84. package/test/resources/9999999/automation/v1/scripts/get-response.json +17 -0
  85. package/test/resources/9999999/dataExtension/retrieve-expected.md +18 -0
  86. package/test/resources/9999999/dataFolder/retrieve-ContentType=automations-response.xml +48 -0
  87. package/test/resources/9999999/dataFolder/retrieve-ContentType=queryactivity-response.xml +48 -0
  88. package/test/resources/9999999/dataFolder/retrieve-response.xml +22 -0
  89. package/test/resources/9999999/emailSendDefinition/retrieve-response.xml +85 -0
  90. package/test/resources/9999999/journey/build-expected.json +1 -1
  91. package/test/resources/9999999/journey/get-expected.json +1 -1
  92. package/test/resources/9999999/journey/put-expected.json +1 -1
  93. package/test/resources/9999999/journey/template-expected.json +1 -1
  94. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
  95. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
  96. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
  97. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/NXV4ZFMwTEFwRVczd3RaLUF5X3p5dzo4Njow/get-response.json +1 -1
  98. package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +1 -1
  99. package/test/resources/9999999/legacy/v1/beta/mobile/message/NTIzOjc4OjA/get-response.json +1 -1
  100. package/test/resources/9999999/legacy/v1/beta/mobile/message/get-response.json +1 -1
  101. package/test/resources/9999999/messaging/v1/sms/definitions/post-response.json +1 -1
  102. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/get-response.json +1 -1
  103. package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/patch-response.json +1 -1
  104. package/test/resources/9999999/mobileKeyword/build-expected.json +1 -4
  105. package/test/resources/9999999/mobileKeyword/get-expected.json +1 -4
  106. package/test/resources/9999999/mobileKeyword/post-create-expected.json +1 -4
  107. package/test/resources/9999999/mobileKeyword/template-expected.json +1 -4
  108. package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -0
  109. package/test/resources/9999999/program/retrieve-CustomerKey=testNew_automation-response.xml +30 -0
  110. package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
  111. package/test/resources/9999999/program/retrieve-response.xml +32 -0
  112. package/test/resources/9999999/query/build-expected.json +2 -2
  113. package/test/resources/9999999/query/build-expected.sql +1 -1
  114. package/test/resources/9999999/query/get-expected.json +2 -2
  115. package/test/resources/9999999/query/get-expected.sql +1 -1
  116. package/test/resources/9999999/query/get2-expected.json +2 -2
  117. package/test/resources/9999999/query/patch-expected.json +2 -2
  118. package/test/resources/9999999/query/patch-expected.sql +1 -1
  119. package/test/resources/9999999/query/post-expected.json +2 -2
  120. package/test/resources/9999999/query/post-expected.sql +1 -1
  121. package/test/resources/9999999/query/template-expected.json +2 -2
  122. package/test/resources/9999999/query/template-expected.sql +1 -1
  123. package/test/resources/9999999/transactionalSMS/build-expected.json +1 -1
  124. package/test/resources/9999999/transactionalSMS/get-expected.json +1 -1
  125. package/test/resources/9999999/transactionalSMS/patch-expected.json +1 -1
  126. package/test/resources/9999999/transactionalSMS/post-expected.json +1 -1
  127. package/test/resources/9999999/transactionalSMS/template-expected.json +1 -1
  128. package/test/type.automation.test.js +259 -0
  129. package/test/type.dataExtension.test.js +16 -1
  130. package/test/type.mobileKeyword.test.js +57 -19
  131. package/test/type.query.test.js +39 -26
  132. package/test/type.user.test.js +44 -1
  133. package/test/utils.js +16 -5
  134. package/.coverage-comment-template.md +0 -20
  135. /package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword.mobileKeyword-meta.amp → 4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.amp} +0 -0
  136. /package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/{testNew_keyword_blocked.mobileKeyword-meta.amp → 4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.amp} +0 -0
  137. /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
  138. /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +0 -0
@@ -32,16 +32,16 @@ describe('type: query', () => {
32
32
  );
33
33
  // normal test
34
34
  assert.deepEqual(
35
- await testUtils.getActualJson('testExistingQuery', 'query'),
35
+ await testUtils.getActualJson('testExisting_query', 'query'),
36
36
  await testUtils.getExpectedJson('9999999', 'query', 'get'),
37
37
  'returned metadata with correct key was not equal expected'
38
38
  );
39
- expect(file(testUtils.getActualFile('testExistingQuery', 'query', 'sql'))).to.equal(
39
+ expect(file(testUtils.getActualFile('testExisting_query', 'query', 'sql'))).to.equal(
40
40
  file(testUtils.getExpectedFile('9999999', 'query', 'get', 'sql'))
41
41
  );
42
42
  // check if targetKey was overwritten
43
43
  assert.deepEqual(
44
- await testUtils.getActualJson('testExistingQuery2', 'query'),
44
+ await testUtils.getActualJson('testExisting_query2', 'query'),
45
45
  await testUtils.getExpectedJson('9999999', 'query', 'get2'),
46
46
  'returned metadata with wrong key was not equal expected'
47
47
  );
@@ -55,7 +55,7 @@ describe('type: query', () => {
55
55
  });
56
56
  it('Should retrieve one specific query', async () => {
57
57
  // WHEN
58
- await handler.retrieve('testInstance/testBU', ['query'], ['testExistingQuery']);
58
+ await handler.retrieve('testInstance/testBU', ['query'], ['testExisting_query']);
59
59
  // THEN
60
60
  assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
61
61
  // get results from cache
@@ -66,11 +66,11 @@ describe('type: query', () => {
66
66
  'only one query expected'
67
67
  );
68
68
  assert.deepEqual(
69
- await testUtils.getActualJson('testExistingQuery', 'query'),
69
+ await testUtils.getActualJson('testExisting_query', 'query'),
70
70
  await testUtils.getExpectedJson('9999999', 'query', 'get'),
71
71
  'returned metadata was not equal expected'
72
72
  );
73
- expect(file(testUtils.getActualFile('testExistingQuery', 'query', 'sql'))).to.equal(
73
+ expect(file(testUtils.getActualFile('testExisting_query', 'query', 'sql'))).to.equal(
74
74
  file(testUtils.getExpectedFile('9999999', 'query', 'get', 'sql'))
75
75
  );
76
76
  assert.equal(
@@ -99,20 +99,20 @@ describe('type: query', () => {
99
99
  );
100
100
  // confirm created item
101
101
  assert.deepEqual(
102
- await testUtils.getActualJson('testNewQuery', 'query'),
102
+ await testUtils.getActualJson('testNew_query', 'query'),
103
103
  await testUtils.getExpectedJson('9999999', 'query', 'post'),
104
104
  'returned metadata was not equal expected for insert query'
105
105
  );
106
- expect(file(testUtils.getActualFile('testNewQuery', 'query', 'sql'))).to.equal(
106
+ expect(file(testUtils.getActualFile('testNew_query', 'query', 'sql'))).to.equal(
107
107
  file(testUtils.getExpectedFile('9999999', 'query', 'post', 'sql'))
108
108
  );
109
109
  // confirm updated item
110
110
  assert.deepEqual(
111
- await testUtils.getActualJson('testExistingQuery', 'query'),
111
+ await testUtils.getActualJson('testExisting_query', 'query'),
112
112
  await testUtils.getExpectedJson('9999999', 'query', 'patch'),
113
113
  'returned metadata was not equal expected for insert query'
114
114
  );
115
- expect(file(testUtils.getActualFile('testExistingQuery', 'query', 'sql'))).to.equal(
115
+ expect(file(testUtils.getActualFile('testExisting_query', 'query', 'sql'))).to.equal(
116
116
  file(testUtils.getExpectedFile('9999999', 'query', 'patch', 'sql'))
117
117
  );
118
118
  // check number of API calls
@@ -131,7 +131,7 @@ describe('type: query', () => {
131
131
  const result = await handler.retrieveAsTemplate(
132
132
  'testInstance/testBU',
133
133
  'query',
134
- ['testExistingQuery'],
134
+ ['testExisting_query'],
135
135
  'testSourceMarket'
136
136
  );
137
137
  // WHEN
@@ -146,18 +146,18 @@ describe('type: query', () => {
146
146
  'only one query expected'
147
147
  );
148
148
  assert.deepEqual(
149
- await testUtils.getActualTemplateJson('testExistingQuery', 'query'),
149
+ await testUtils.getActualTemplateJson('testExisting_query', 'query'),
150
150
  await testUtils.getExpectedJson('9999999', 'query', 'template'),
151
151
  'returned template JSON of retrieveAsTemplate was not equal expected'
152
152
  );
153
153
  expect(
154
- file(testUtils.getActualTemplateFile('testExistingQuery', 'query', 'sql'))
154
+ file(testUtils.getActualTemplateFile('testExisting_query', 'query', 'sql'))
155
155
  ).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'template', 'sql')));
156
156
  // THEN
157
157
  await handler.buildDefinition(
158
158
  'testInstance/testBU',
159
159
  'query',
160
- 'testExistingQuery',
160
+ 'testExisting_query',
161
161
  'testTargetMarket'
162
162
  );
163
163
  assert.equal(
@@ -167,13 +167,14 @@ describe('type: query', () => {
167
167
  );
168
168
 
169
169
  assert.deepEqual(
170
- await testUtils.getActualDeployJson('testExistingQuery', 'query'),
170
+ await testUtils.getActualDeployJson('testTemplated_query', 'query'),
171
171
  await testUtils.getExpectedJson('9999999', 'query', 'build'),
172
172
  'returned deployment JSON was not equal expected'
173
173
  );
174
174
  expect(
175
- file(testUtils.getActualDeployFile('testExistingQuery', 'query', 'sql'))
175
+ file(testUtils.getActualDeployFile('testTemplated_query', 'query', 'sql'))
176
176
  ).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')));
177
+
177
178
  assert.equal(
178
179
  testUtils.getAPIHistoryLength(),
179
180
  6,
@@ -188,7 +189,7 @@ describe('type: query', () => {
188
189
  const result = await handler.buildTemplate(
189
190
  'testInstance/testBU',
190
191
  'query',
191
- ['testExistingQuery'],
192
+ ['testExisting_query'],
192
193
  'testSourceMarket'
193
194
  );
194
195
  // WHEN
@@ -200,18 +201,18 @@ describe('type: query', () => {
200
201
  'only one query expected'
201
202
  );
202
203
  assert.deepEqual(
203
- await testUtils.getActualTemplateJson('testExistingQuery', 'query'),
204
+ await testUtils.getActualTemplateJson('testExisting_query', 'query'),
204
205
  await testUtils.getExpectedJson('9999999', 'query', 'template'),
205
206
  'returned template JSON of buildTemplate was not equal expected'
206
207
  );
207
208
  expect(
208
- file(testUtils.getActualTemplateFile('testExistingQuery', 'query', 'sql'))
209
+ file(testUtils.getActualTemplateFile('testExisting_query', 'query', 'sql'))
209
210
  ).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'template', 'sql')));
210
211
  // THEN
211
212
  await handler.buildDefinition(
212
213
  'testInstance/testBU',
213
214
  'query',
214
- 'testExistingQuery',
215
+ 'testExisting_query',
215
216
  'testTargetMarket'
216
217
  );
217
218
  assert.equal(
@@ -221,12 +222,12 @@ describe('type: query', () => {
221
222
  );
222
223
 
223
224
  assert.deepEqual(
224
- await testUtils.getActualDeployJson('testExistingQuery', 'query'),
225
+ await testUtils.getActualDeployJson('testTemplated_query', 'query'),
225
226
  await testUtils.getExpectedJson('9999999', 'query', 'build'),
226
227
  'returned deployment JSON was not equal expected'
227
228
  );
228
229
  expect(
229
- file(testUtils.getActualDeployFile('testExistingQuery', 'query', 'sql'))
230
+ file(testUtils.getActualDeployFile('testTemplated_query', 'query', 'sql'))
230
231
  ).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')));
231
232
 
232
233
  assert.equal(
@@ -241,7 +242,7 @@ describe('type: query', () => {
241
242
  it('Should delete the item', async () => {
242
243
  // WHEN
243
244
  const result = await handler.deleteByKey('testInstance/testBU', 'query', [
244
- 'testExistingQuery',
245
+ 'testExisting_query',
245
246
  ]);
246
247
  // THEN
247
248
  assert.equal(process.exitCode, false, 'delete should not have thrown an error');
@@ -254,7 +255,7 @@ describe('type: query', () => {
254
255
  it('Should return a list of files based on their type and key', async () => {
255
256
  // WHEN
256
257
  const fileList = await handler.getFilesToCommit('testInstance/testBU', 'query', [
257
- 'testExistingQuery',
258
+ 'testExisting_query',
258
259
  ]);
259
260
  // THEN
260
261
  assert.equal(
@@ -266,15 +267,27 @@ describe('type: query', () => {
266
267
 
267
268
  assert.equal(
268
269
  fileList[0].split('\\').join('/'),
269
- 'retrieve/testInstance/testBU/query/testExistingQuery.query-meta.json',
270
+ 'retrieve/testInstance/testBU/query/testExisting_query.query-meta.json',
270
271
  'wrong JSON path'
271
272
  );
272
273
  assert.equal(
273
274
  fileList[1].split('\\').join('/'),
274
- 'retrieve/testInstance/testBU/query/testExistingQuery.query-meta.sql',
275
+ 'retrieve/testInstance/testBU/query/testExisting_query.query-meta.sql',
275
276
  'wrong JSON path'
276
277
  );
277
278
  return;
278
279
  });
279
280
  });
281
+ describe('Execute ================', () => {
282
+ it('Should start executing a query', async () => {
283
+ const execute = await handler.execute(
284
+ 'testInstance/testBU',
285
+ ['query'],
286
+ ['testExisting_query']
287
+ );
288
+ assert.equal(process.exitCode, false, 'execute should not have thrown an error');
289
+ assert.equal(execute, true, 'query was supposed to be executed');
290
+ return;
291
+ });
292
+ });
280
293
  });
@@ -1,7 +1,13 @@
1
- const assert = require('chai').assert;
1
+ const chai = require('chai');
2
+ const chaiFiles = require('chai-files');
3
+ const assert = chai.assert;
4
+ chai.use(chaiFiles);
5
+ const expect = chai.expect;
6
+ const file = chaiFiles.file;
2
7
  const cache = require('../lib/util/cache');
3
8
  const testUtils = require('./utils');
4
9
  const handler = require('../lib/index');
10
+ const File = require('../lib/util/file');
5
11
 
6
12
  describe('type: user', () => {
7
13
  beforeEach(() => {
@@ -29,6 +35,24 @@ describe('type: user', () => {
29
35
 
30
36
  'returned metadata was not equal expected'
31
37
  );
38
+ // check if MD file was created and equals expectations
39
+ // ! this test needs to update the lastLoginDate counter because it changes with every passing day
40
+ const expectedFile = await File.readFile(
41
+ testUtils.getExpectedFile('1111111', 'user', 'retrieve', 'md'),
42
+ { encoding: 'utf8' }
43
+ );
44
+ const regexFindDaysSinceLogin =
45
+ /\| (\d*) (seconds|minutes|days|weeks|months|years){1} \|/gm;
46
+ // fetch expected time since last login
47
+ const expectedDaysSinceLogin = expectedFile.match(regexFindDaysSinceLogin);
48
+ // load actual file and replace days since last login with expected value
49
+ const actualFile = (
50
+ await File.readFile(`./docs/user/testInstance.users.md`, {
51
+ encoding: 'utf8',
52
+ })
53
+ ).replaceAll(regexFindDaysSinceLogin, expectedDaysSinceLogin);
54
+ expect(actualFile).to.equal(expectedFile);
55
+
32
56
  assert.equal(
33
57
  testUtils.getAPIHistoryLength(),
34
58
  6,
@@ -36,6 +60,22 @@ describe('type: user', () => {
36
60
  );
37
61
  return;
38
62
  });
63
+ it('Should retrieve a specific user but not run document', async () => {
64
+ // WHEN
65
+ await handler.retrieve('testInstance/_ParentBU_', ['user'], ['testExisting_user']);
66
+ // THEN
67
+ assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
68
+
69
+ // because user is single-document-type we would not want to find an md file when we retrieve specific keys. only the generic retrieve updates it
70
+ expect(file(`./docs/user/testInstance.users.md`)).to.not.exist;
71
+
72
+ assert.equal(
73
+ testUtils.getAPIHistoryLength(),
74
+ 4,
75
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
76
+ );
77
+ return;
78
+ });
39
79
  });
40
80
  describe('Deploy ================', () => {
41
81
  beforeEach(() => {
@@ -74,6 +114,9 @@ describe('type: user', () => {
74
114
  await testUtils.getExpectedJson('1111111', 'user', 'update'),
75
115
  'returned metadata was not equal expected for update'
76
116
  );
117
+ // because user is single-document-type we would not want to find an md file getting created by deploy. only retrieve updates it
118
+ expect(file(`./docs/user/testInstance.users.md`)).to.not.exist;
119
+
77
120
  assert.equal(
78
121
  testUtils.getAPIHistoryLength(),
79
122
  9,
package/test/utils.js CHANGED
@@ -4,6 +4,7 @@ const axios = require('axios');
4
4
  const MockAdapter = require('axios-mock-adapter');
5
5
  const auth = require('../lib/util/auth');
6
6
  const Util = require('../lib/util/util');
7
+ const handler = require('../lib/index');
7
8
 
8
9
  // for some reason doesnt realize below reference
9
10
  // eslint-disable-next-line no-unused-vars
@@ -22,13 +23,23 @@ const resourceFactory = require('./resourceFactory');
22
23
  */
23
24
  exports.getActualJson = (customerKey, type, buName = 'testBU') =>
24
25
  File.readJSON(`./retrieve/testInstance/${buName}/${type}/${customerKey}.${type}-meta.json`);
26
+ /**
27
+ * gets file from Retrieve folder
28
+ *
29
+ * @param {string} customerKey of metadata
30
+ * @param {string} type of metadata
31
+ * @param {string} [buName] used when we need to test on ParentBU
32
+ * @returns {string} file path
33
+ */
34
+ exports.getActualDoc = (customerKey, type, buName = 'testBU') =>
35
+ `./retrieve/testInstance/${buName}/${type}/${customerKey}.${type}-doc.md`;
25
36
  /**
26
37
  * gets file from Retrieve folder
27
38
  *
28
39
  * @param {string} customerKey of metadata
29
40
  * @param {string} type of metadata
30
41
  * @param {string} ext file extension
31
- * @returns {Promise.<string>} file in string form
42
+ * @returns {string} file path
32
43
  */
33
44
  exports.getActualFile = (customerKey, type, ext) =>
34
45
  `./retrieve/testInstance/testBU/${type}/${customerKey}.${type}-meta.${ext}`;
@@ -48,7 +59,7 @@ exports.getActualDeployJson = (customerKey, type, buName = 'testBU') =>
48
59
  * @param {string} customerKey of metadata
49
60
  * @param {string} type of metadata
50
61
  * @param {string} ext file extension
51
- * @returns {Promise.<string>} file in string form
62
+ * @returns {string} file path
52
63
  */
53
64
  exports.getActualDeployFile = (customerKey, type, ext) =>
54
65
  `./deploy/testInstance/testBU/${type}/${customerKey}.${type}-meta.${ext}`;
@@ -67,7 +78,7 @@ exports.getActualTemplateJson = (customerKey, type) =>
67
78
  * @param {string} customerKey of metadata
68
79
  * @param {string} type of metadata
69
80
  * @param {string} ext file extension
70
- * @returns {Promise.<string>} file in string form
81
+ * @returns {string} file path
71
82
  */
72
83
  exports.getActualTemplateFile = (customerKey, type, ext) =>
73
84
  `./template/${type}/${customerKey}.${type}-meta.${ext}`;
@@ -89,7 +100,7 @@ exports.getExpectedJson = (mid, type, action) =>
89
100
  * @param {string} type of metadata
90
101
  * @param {string} action of SOAP request
91
102
  * @param {string} ext file extension
92
- * @returns {Promise.<string>} file in string form
103
+ * @returns {string} file path
93
104
  */
94
105
  exports.getExpectedFile = (mid, type, action, ext) =>
95
106
  path.join('test', 'resources', mid, type, action + '-expected.' + ext);
@@ -101,7 +112,7 @@ exports.getExpectedFile = (mid, type, action, ext) =>
101
112
  */
102
113
 
103
114
  exports.mockSetup = (isDeploy) => {
104
- Util.setLoggingLevel({ debug: true });
115
+ handler.setOptions({ debug: true, noLogFile: true });
105
116
  apimock = new MockAdapter(axios, { onNoMatch: 'throwException' });
106
117
  // set access_token to mid to allow for autorouting of mock to correct resources
107
118
  apimock.onPost(authResources.success.url).reply((config) => {
@@ -1,20 +0,0 @@
1
- ## Coverage Report
2
-
3
- Commit: [{{short_commit_sha}}]({{commit_link}})
4
- Base: [{{base_ref}}@{{base_short_commit_sha}}]({{base_commit_link}})
5
-
6
- | Type | Base | This PR |
7
- | ------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------- |
8
- | Total Statements Coverage | {{base_total_statements_coverage_percent}} | {{total_statements_coverage_percent}} ({{total_statements_coverage_percent_diff}}) |
9
- | Total Branches Coverage | {{base_total_branches_coverage_percent}} | {{total_branches_coverage_percent}} ({{total_branches_coverage_percent_diff}}) |
10
- | Total Functions Coverage | {{base_total_functions_coverage_percent}} | {{total_functions_coverage_percent}} ({{total_functions_coverage_percent_diff}}) |
11
- | Total Lines Coverage | {{base_total_lines_coverage_percent}} | {{total_lines_coverage_percent}} ({{total_lines_coverage_percent_diff}}) |
12
-
13
- <details>
14
- <summary>Details (changed files)</summary>
15
- {{changed_files_coverage_table}}
16
- </details>
17
- <details>
18
- <summary>Details (all files)</summary>
19
- {{files_coverage_table}}
20
- </details>