mcdev 8.1.0 → 8.2.1

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 (56) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.github/workflows/code-test.yml +2 -2
  3. package/.github/workflows/coverage-base-update.yml +3 -3
  4. package/.github/workflows/coverage-develop-branch.yml +3 -3
  5. package/.github/workflows/coverage-main-branch.yml +3 -3
  6. package/.github/workflows/coverage.yml +4 -4
  7. package/.github/workflows/npm-publish.yml +4 -4
  8. package/@types/lib/MetadataTypeDefinitions.d.ts +2 -0
  9. package/@types/lib/MetadataTypeDefinitions.d.ts.map +1 -1
  10. package/@types/lib/MetadataTypeInfo.d.ts +2 -0
  11. package/@types/lib/MetadataTypeInfo.d.ts.map +1 -1
  12. package/@types/lib/index.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  14. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  16. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  18. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/TriggeredSendSummary.d.ts +257 -0
  20. package/@types/lib/metadataTypes/TriggeredSendSummary.d.ts.map +1 -0
  21. package/@types/lib/metadataTypes/definitions/TriggeredSendSummary.definition.d.ts +208 -0
  22. package/@types/lib/metadataTypes/definitions/TriggeredSendSummary.definition.d.ts.map +1 -0
  23. package/@types/lib/util/devops.d.ts +2 -1
  24. package/@types/lib/util/devops.d.ts.map +1 -1
  25. package/@types/lib/util/util.d.ts +2 -1
  26. package/@types/lib/util/util.d.ts.map +1 -1
  27. package/lib/MetadataTypeDefinitions.js +2 -0
  28. package/lib/MetadataTypeInfo.js +2 -0
  29. package/lib/cli.js +5 -0
  30. package/lib/index.js +26 -4
  31. package/lib/metadataTypes/Asset.js +30 -7
  32. package/lib/metadataTypes/Automation.js +4 -2
  33. package/lib/metadataTypes/DataExtension.js +19 -12
  34. package/lib/metadataTypes/DataExtensionField.js +4 -3
  35. package/lib/metadataTypes/Folder.js +1 -1
  36. package/lib/metadataTypes/Journey.js +12 -2
  37. package/lib/metadataTypes/MetadataType.js +8 -2
  38. package/lib/metadataTypes/TriggeredSendSummary.js +102 -0
  39. package/lib/metadataTypes/definitions/TriggeredSendSummary.definition.js +211 -0
  40. package/lib/util/devops.js +29 -9
  41. package/lib/util/util.js +13 -4
  42. package/package.json +10 -10
  43. package/test/mockRoot/.mcdevrc.json +1 -1
  44. package/test/resources/1111111/dataFolder/retrieve-ContentTypeINdataextension,hidden,queryactivity,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +26 -0
  45. package/test/resources/9999999/automation/create-testNew_automation-expected.md +1 -1
  46. package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +1 -1
  47. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +1 -1
  48. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/put-response.json +1 -1
  49. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/put-response-paused.json +1 -1
  50. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/put-response.json +1 -1
  51. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail_notPublished/put-response.json +1 -1
  52. package/test/resources/9999999/triggeredSendSummary/get-expected.json +24 -0
  53. package/test/resources/9999999/triggeredSendSummary/retrieve-response.xml +49 -0
  54. package/test/type.dataExtension.test.js +41 -0
  55. package/test/type.journey.test.js +37 -2
  56. package/test/type.triggeredSendSummary.test.js +45 -0
@@ -91,6 +91,47 @@ describe('type: dataExtension', () => {
91
91
  );
92
92
  return;
93
93
  });
94
+
95
+ it('Should not fail if shared dataExtension cannot be retrieved', async () => {
96
+ // WHEN
97
+ await handler.retrieve('testInstance/_ParentBU_', ['dataExtension', 'query']);
98
+ // THEN
99
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
100
+ // get results from cache
101
+ const result = cache.getCache();
102
+ assert.equal(
103
+ result.dataExtension ? Object.keys(result.dataExtension).length : 0,
104
+ 1,
105
+ 'only one dataExtension expected'
106
+ );
107
+ assert.deepEqual(
108
+ await testUtils.getActualJson(
109
+ 'testExisting_dataExtensionShared',
110
+ 'dataExtension',
111
+ '_ParentBU_'
112
+ ),
113
+ await testUtils.getExpectedJson('1111111', 'dataExtension', 'retrieve'),
114
+
115
+ 'returned metadata was not equal expected'
116
+ );
117
+ // check if MD file was created and equals expectations
118
+ expect(
119
+ await testUtils.getActualDoc(
120
+ 'testExisting_dataExtensionShared',
121
+ 'dataExtension',
122
+ '_ParentBU_'
123
+ )
124
+ ).to.equal(
125
+ await testUtils.getExpectedFile('1111111', 'dataExtension', 'retrieve', 'md')
126
+ );
127
+
128
+ assert.equal(
129
+ testUtils.getAPIHistoryLength(),
130
+ 7,
131
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
132
+ );
133
+ return;
134
+ });
94
135
  });
95
136
 
96
137
  describe('Deploy ================', () => {
@@ -1132,13 +1132,19 @@ describe('type: journey', () => {
1132
1132
  it('Should not validate a transactional journey by key', async () => {
1133
1133
  handler.setOptions({ skipStatusCheck: true });
1134
1134
  // WHEN
1135
- await handler.validate(
1135
+ const validate = await handler.validate(
1136
1136
  'testInstance/testBU',
1137
1137
  ['journey'],
1138
1138
  ['testExisting_temail_notPublished']
1139
1139
  );
1140
1140
  // THEN
1141
- assert.equal(process.exitCode, 1, 'validate should not have thrown an error');
1141
+ assert.equal(process.exitCode, 0, 'validate should not have thrown an error');
1142
+ // retrieve result
1143
+ assert.deepEqual(
1144
+ validate['testInstance/testBU']?.journey,
1145
+ [],
1146
+ 'should not have validated any journey'
1147
+ );
1142
1148
 
1143
1149
  assert.equal(
1144
1150
  testUtils.getAPIHistoryLength(),
@@ -1148,6 +1154,35 @@ describe('type: journey', () => {
1148
1154
  return;
1149
1155
  });
1150
1156
 
1157
+ it('Should validate a multi-step journey but not the transactional journey by key', async () => {
1158
+ await testUtils.copyFile(
1159
+ 'interaction/v1/interactions/validateStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-success.json',
1160
+ 'interaction/v1/interactions/validateStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response.json'
1161
+ );
1162
+ handler.setOptions({ skipStatusCheck: true });
1163
+ // WHEN
1164
+ const validate = await handler.validate(
1165
+ 'testInstance/testBU',
1166
+ ['journey'],
1167
+ ['testExisting_temail_notPublished', 'testExisting_journey_Multistep']
1168
+ );
1169
+ // THEN
1170
+ assert.equal(process.exitCode, 0, 'validate should not have thrown an error');
1171
+ // retrieve result
1172
+ assert.deepEqual(
1173
+ validate['testInstance/testBU']?.journey,
1174
+ ['testExisting_journey_Multistep'],
1175
+ 'should not have validated any journey'
1176
+ );
1177
+
1178
+ assert.equal(
1179
+ testUtils.getAPIHistoryLength(),
1180
+ 3,
1181
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1182
+ );
1183
+ return;
1184
+ });
1185
+
1151
1186
  it('Should validate a journey by id but w/o version (auto-picks latest version)', async () => {
1152
1187
  await testUtils.copyFile(
1153
1188
  'interaction/v1/interactions/validateStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-success.json',
@@ -0,0 +1,45 @@
1
+ import * as chai from 'chai';
2
+ const assert = chai.assert;
3
+
4
+ import chaiFiles from 'chai-files';
5
+ import cache from '../lib/util/cache.js';
6
+ import * as testUtils from './utils.js';
7
+ import handler from '../lib/index.js';
8
+ chai.use(chaiFiles);
9
+
10
+ describe('type: triggeredSendSummary', () => {
11
+ beforeEach(() => {
12
+ testUtils.mockSetup();
13
+ });
14
+
15
+ afterEach(() => {
16
+ testUtils.mockReset();
17
+ });
18
+
19
+ describe('Retrieve ================', () => {
20
+ it('Should retrieve a triggeredSendSummary', async () => {
21
+ // WHEN
22
+ await handler.retrieve('testInstance/testBU', ['triggeredSendSummary']);
23
+ // THEN
24
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
25
+ // get results from cache
26
+ const result = cache.getCache();
27
+ assert.equal(
28
+ result.triggeredSendSummary ? Object.keys(result.triggeredSendSummary).length : 0,
29
+ 1,
30
+ 'only 1 triggeredSendSummary expected'
31
+ );
32
+ assert.deepEqual(
33
+ await testUtils.getActualJson('testExisting_triggeredSend', 'triggeredSendSummary'),
34
+ await testUtils.getExpectedJson('9999999', 'triggeredSendSummary', 'get'),
35
+ 'returned JSON was not equal expected'
36
+ );
37
+ assert.equal(
38
+ testUtils.getAPIHistoryLength(),
39
+ 3,
40
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
41
+ );
42
+ return;
43
+ });
44
+ });
45
+ });