mcdev 7.10.0 → 8.0.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 (209) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.github/workflows/code-test.yml +8 -100
  3. package/@types/lib/Deployer.d.ts.map +1 -1
  4. package/@types/lib/Retriever.d.ts.map +1 -1
  5. package/@types/lib/index.d.ts +16 -4
  6. package/@types/lib/index.d.ts.map +1 -1
  7. package/@types/lib/metadataTypes/Asset.d.ts +45 -8
  8. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  9. package/@types/lib/metadataTypes/Automation.d.ts +73 -53
  10. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  12. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/DataExtract.d.ts +13 -2
  14. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/Event.d.ts +14 -0
  16. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Folder.d.ts +49 -12
  18. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/ImportFile.d.ts +14 -0
  20. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/Journey.d.ts +166 -6
  22. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/MetadataType.d.ts +24 -6
  24. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  26. package/@types/lib/metadataTypes/SenderProfile.d.ts +3 -1
  27. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  28. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +45 -8
  29. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +43 -1
  30. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +21 -3
  31. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +6 -0
  32. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +49 -12
  33. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +3 -0
  34. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +159 -6
  35. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +3 -1
  36. package/@types/lib/util/cache.d.ts +2 -1
  37. package/@types/lib/util/cache.d.ts.map +1 -1
  38. package/@types/lib/util/devops.d.ts.map +1 -1
  39. package/@types/lib/util/util.d.ts +1 -0
  40. package/@types/lib/util/util.d.ts.map +1 -1
  41. package/@types/lib/util/validations.d.ts.map +1 -1
  42. package/@types/types/mcdev.d.d.ts +48 -0
  43. package/@types/types/mcdev.d.d.ts.map +1 -1
  44. package/boilerplate/files/.vscode/settings.json +5 -0
  45. package/eslint.config.js +2 -2
  46. package/lib/Deployer.js +3 -0
  47. package/lib/Retriever.js +8 -2
  48. package/lib/cli.js +29 -0
  49. package/lib/index.js +37 -33
  50. package/lib/metadataTypes/Asset.js +130 -15
  51. package/lib/metadataTypes/Automation.js +308 -410
  52. package/lib/metadataTypes/DataExtension.js +1 -11
  53. package/lib/metadataTypes/DataExtensionField.js +9 -15
  54. package/lib/metadataTypes/DataExtract.js +41 -6
  55. package/lib/metadataTypes/DomainVerification.js +1 -1
  56. package/lib/metadataTypes/EmailSend.js +3 -3
  57. package/lib/metadataTypes/Event.js +81 -39
  58. package/lib/metadataTypes/FileTransfer.js +5 -5
  59. package/lib/metadataTypes/Folder.js +98 -12
  60. package/lib/metadataTypes/ImportFile.js +96 -33
  61. package/lib/metadataTypes/Journey.js +186 -32
  62. package/lib/metadataTypes/MetadataType.js +118 -70
  63. package/lib/metadataTypes/MobileKeyword.js +2 -2
  64. package/lib/metadataTypes/MobileMessage.js +4 -2
  65. package/lib/metadataTypes/Query.js +5 -5
  66. package/lib/metadataTypes/Script.js +5 -5
  67. package/lib/metadataTypes/SendClassification.js +3 -3
  68. package/lib/metadataTypes/SenderProfile.js +3 -3
  69. package/lib/metadataTypes/TransactionalEmail.js +1 -1
  70. package/lib/metadataTypes/TransactionalMessage.js +1 -1
  71. package/lib/metadataTypes/TriggeredSend.js +3 -3
  72. package/lib/metadataTypes/Verification.js +1 -1
  73. package/lib/metadataTypes/definitions/Asset.definition.js +196 -142
  74. package/lib/metadataTypes/definitions/Automation.definition.js +49 -7
  75. package/lib/metadataTypes/definitions/DataExtension.definition.js +7 -6
  76. package/lib/metadataTypes/definitions/DataExtract.definition.js +16 -3
  77. package/lib/metadataTypes/definitions/DomainVerification.definition.js +1 -1
  78. package/lib/metadataTypes/definitions/Event.definition.js +6 -0
  79. package/lib/metadataTypes/definitions/Folder.definition.js +69 -22
  80. package/lib/metadataTypes/definitions/ImportFile.definition.js +3 -0
  81. package/lib/metadataTypes/definitions/Journey.definition.js +165 -11
  82. package/lib/metadataTypes/definitions/SenderProfile.definition.js +3 -1
  83. package/lib/util/cache.js +24 -5
  84. package/lib/util/devops.js +20 -5
  85. package/lib/util/util.js +12 -0
  86. package/lib/util/validations.js +3 -1
  87. package/package.json +16 -17
  88. package/test/general.test.js +42 -37
  89. package/test/mockRoot/.mcdev-validations.js +2 -3
  90. package/test/mockRoot/.mcdevrc.json +1 -1
  91. package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +2 -1
  92. package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +2 -1
  93. package/test/resourceFactory.js +35 -6
  94. package/test/resources/1111111/dataExtension/update-expected.json +1 -1
  95. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.js +1 -0
  96. package/test/resources/9999999/asset/test_coderesource_js-retrieve-expected.json +47 -0
  97. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.json +47 -0
  98. package/test/resources/9999999/asset/test_coderesource_json-retrieve-expected.jsonc +1 -0
  99. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.json +46 -0
  100. package/test/resources/9999999/asset/test_coderesource_xml-retrieve-expected.xml +1 -0
  101. package/test/resources/9999999/asset/test_interactivecontent-retrieve-expected.json +43 -0
  102. package/test/resources/9999999/asset/test_landingpage-retrieve-expected.json +42 -0
  103. package/test/resources/9999999/asset/test_microsite-retrieve-expected.json +43 -0
  104. package/test/resources/9999999/asset/v1/content/assets/9451/get-response.json +61 -0
  105. package/test/resources/9999999/asset/v1/content/assets/9456/get-response.json +56 -0
  106. package/test/resources/9999999/asset/v1/content/assets/9458/get-response.json +56 -0
  107. package/test/resources/9999999/asset/v1/content/assets/9460/get-response.json +59 -0
  108. package/test/resources/9999999/asset/v1/content/assets/9463/get-response.json +61 -0
  109. package/test/resources/9999999/asset/v1/content/assets/9465/get-response.json +54 -0
  110. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN1,3,4,14,15,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,210,211,212,213,214,215,216,217,218,219,220,221,222.json +94 -1
  111. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232,240,241,242,243,244,245.json +168 -0
  112. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN240,241,242,243,244,245.json +144 -0
  113. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN246,247,248,249.json +132 -0
  114. package/test/resources/9999999/automation/create-expected.json +2 -1
  115. package/test/resources/9999999/automation/retrieve-expected.json +7 -1
  116. package/test/resources/9999999/automation/retrieve-wait-expected.json +7 -1
  117. package/test/resources/9999999/automation/update-expected.json +24 -2
  118. package/test/resources/9999999/automation/update-testExisting_automation-expected.md +5 -2
  119. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +1 -0
  120. package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +1 -0
  121. package/test/resources/9999999/dataExtension/update-callout-afterCreatedViaEvent-expected.xml +1 -1
  122. package/test/resources/9999999/dataExtract/build-expected.json +2 -2
  123. package/test/resources/9999999/dataExtract/get-expected.json +2 -2
  124. package/test/resources/9999999/dataExtract/patch-expected.json +2 -2
  125. package/test/resources/9999999/dataExtract/post-expected.json +2 -2
  126. package/test/resources/9999999/dataExtract/template-expected.json +2 -2
  127. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,triggered,triggered,useriniti-response.xml} +44 -1
  128. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-sha,automatio,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml → retrieve-ContentTypeINasset,asset-sha,automatio,cloudpage,dataexten,hidden,journey,list,mysubs,publicati,queryacti,salesforc,shared_da,shared_da,shared_sa,ssjsactiv,synchroni,useriniti-response.xml} +44 -0
  129. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,dataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +44 -0
  130. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,journey-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages,journey-response.xml} +44 -0
  131. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,cloudpages,ssjsactivity-response.xml +136 -0
  132. package/test/resources/9999999/dataFolder/{retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml → retrieve-ContentTypeINasset,asset-shared,cloudpages-response.xml} +29 -7
  133. package/test/resources/9999999/dataFolder/{+retrieve-response.xml → retrieve-response.xml} +23 -0
  134. package/test/resources/9999999/dataFolder/update-response.xml +31 -0
  135. package/test/resources/9999999/event/build-expected.json +0 -1
  136. package/test/resources/9999999/event/get-automation-expected.json +0 -1
  137. package/test/resources/9999999/event/get-expected.json +0 -2
  138. package/test/resources/9999999/event/get-published-expected.json +0 -2
  139. package/test/resources/9999999/event/post_withExistingDE-expected.json +0 -2
  140. package/test/resources/9999999/event/post_withSchema-callout-expected.json +3 -0
  141. package/test/resources/9999999/event/post_withSchema-expected.json +0 -2
  142. package/test/resources/9999999/event/put-callout-expected.json +3 -0
  143. package/test/resources/9999999/event/put-expected.json +0 -2
  144. package/test/resources/9999999/event/template-expected.json +0 -1
  145. package/test/resources/9999999/folder-deploy/Data Extensions/testExisting_folder.folder-meta.json +9 -0
  146. package/test/resources/9999999/importFile/get-dataImport-expected.json +1 -1
  147. package/test/resources/9999999/importFile/get-expected.json +4 -1
  148. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=1.json +86 -0
  149. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=2.json +101 -0
  150. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/audit/all/get-response-versionNumber=3.json +86 -0
  151. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/delete-response-versionNumber=1.txt +1 -0
  152. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=1.json +461 -0
  153. package/test/resources/9999999/interaction/v1/interactions/0175b971-71a3-4d8e-98ac-48121f3fbf4f/get-response-versionNumber=3.json +461 -0
  154. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=1.json +38 -0
  155. package/test/resources/9999999/interaction/v1/interactions/dsfdsafdsa-922c-4568-85a5-e5cc77efc3be/audit/all/get-response-versionNumber=2.json +53 -0
  156. package/test/resources/9999999/interaction/v1/interactions/get-response.json +2 -2
  157. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Multistep/get-response-versionNumber=1.json +461 -0
  158. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response-versionNumber=1.json +253 -0
  159. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail/get-response-versionNumber=1.json +219 -0
  160. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_temail_notPublished/get-response-versionNumber=1.json +226 -0
  161. package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/post-response-versionNumber=3.json +4 -0
  162. package/test/resources/9999999/journey/build-expected.json +0 -1
  163. package/test/resources/9999999/journey/create-transactionaEmail-publish-expected.json +0 -1
  164. package/test/resources/9999999/journey/get-multistep-expected.json +0 -4
  165. package/test/resources/9999999/journey/get-published-expected.json +0 -1
  166. package/test/resources/9999999/journey/get-quicksend-expected.json +0 -1
  167. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +0 -1
  168. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +0 -1
  169. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +0 -1
  170. package/test/resources/9999999/journey/get-transactionalEmail-expected.json +0 -1
  171. package/test/resources/9999999/journey/template-expected.json +0 -1
  172. package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED/get-response.json +3 -0
  173. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/NewRkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +29 -0
  174. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +50 -0
  175. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED/get-response.json +51 -0
  176. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/bHF6Q0Q3b1VXa21OdVQzZFQ0ckVSQToyNTow/get-response.json +7 -1
  177. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/cDhLQ2o2NExxVVc5N3VZeHF5WEExUToyNTow/get-response.json +79 -0
  178. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +61 -2
  179. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/post-response-pauseSchedule.json +1 -0
  180. package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/post-response-schedule.json +1 -0
  181. package/test/resources/9999999/messaging/v1/domainverification/get-response.json +10 -1
  182. package/test/resources/9999999/query/patch-expected.sql +1 -1
  183. package/test/resources/9999999/query/post-expected.sql +1 -1
  184. package/test/resources/9999999/script/patch-expected.ssjs +1 -0
  185. package/test/resources/9999999/senderProfile/build-expected.json +1 -1
  186. package/test/resources/9999999/senderProfile/get-expected.json +1 -1
  187. package/test/resources/9999999/senderProfile/patch-expected.json +1 -1
  188. package/test/resources/9999999/senderProfile/retrieve-response.xml +1 -1
  189. package/test/resources/9999999/senderProfile/template-expected.json +1 -1
  190. package/test/type.asset.test.js +123 -13
  191. package/test/type.automation.test.js +20 -17
  192. package/test/type.dataExtract.test.js +4 -4
  193. package/test/type.domainVerification.test.js +3 -3
  194. package/test/type.folder.test.js +12 -2
  195. package/test/type.journey.test.js +141 -5
  196. package/test/type.query.test.js +2 -2
  197. package/test/type.script.test.js +2 -1
  198. package/test/type.senderProfile.test.js +21 -3
  199. package/test/type.triggeredSend.test.js +13 -1
  200. package/test/utils.js +2 -0
  201. package/types/mcdev.d.js +12 -0
  202. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN219,220,221,222,223,224,225,226,227,228,230,232.json +0 -32
  203. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +0 -52
  204. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +0 -38
  205. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +0 -52
  206. package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +0 -52
  207. package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +0 -52
  208. /package/test/resources/9999999/dataFolder/{+retrieve-QAA-response.xml → retrieve-QAA-response.xml} +0 -0
  209. /package/test/resources/9999999/interaction/v1/interactions/publishAsync/0175b971-71a3-4d8e-98ac-48121f3fbf4f/{post-response.json → post-response-versionNumber=1.json} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "startIndex": 0,
3
3
  "itemsPerPage": 50,
4
- "totalResults": 3,
4
+ "totalResults": 4,
5
5
  "entry": [
6
6
  {
7
7
  "id": "cDhLQ2o2NExxVVc5N3VZeHF5WEExUToyNTow",
@@ -70,6 +70,65 @@
70
70
  "automationType": "scheduled",
71
71
  "lastRunStatus": "Complete"
72
72
  },
73
+ {
74
+ "id": "RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED",
75
+ "name": "testExisting_automation_pause",
76
+ "description": "updated on deploy",
77
+ "key": "testExisting_automation_pause",
78
+ "typeId": 1,
79
+ "statusId": 4,
80
+ "status": "Scheduled",
81
+ "processes": [
82
+ {
83
+ "workerCounts": [
84
+ {
85
+ "name": "testExisting_dataExtract",
86
+ "objectTypeId": 73,
87
+ "count": 1
88
+ },
89
+ {
90
+ "name": "testExisting_emailSend",
91
+ "objectTypeId": 42,
92
+ "count": 2
93
+ },
94
+ {
95
+ "name": "testExisting_fileTransfer",
96
+ "objectTypeId": 53,
97
+ "count": 3
98
+ },
99
+ {
100
+ "name": "testExisting_importFile",
101
+ "objectTypeId": 43,
102
+ "count": 4
103
+ },
104
+ {
105
+ "name": "testExisting_query_WRONG_NAME",
106
+ "objectTypeId": 300,
107
+ "count": 5
108
+ },
109
+ {
110
+ "name": "testExisting_script",
111
+ "objectTypeId": 423,
112
+ "count": 6
113
+ }
114
+ ],
115
+ "annotation": "",
116
+ "stepNumber": 0
117
+ }
118
+ ],
119
+ "schedule": "https://mcxxxxx.rest.marketingcloudapis.com/legacy/v1/beta/automations/schedule/dXZSTUJ0Q2xDa0tLVHlZRldqVlF1ZzozNjow",
120
+ "scheduledTime": "2024-11-07T23:15:00Z",
121
+ "startTime": "2024-11-07T22:15:19.057Z",
122
+ "completedTime": "2024-11-07T22:17:24.453Z",
123
+ "lastRunTime": "2024-11-07T22:15:19.057Z",
124
+ "lastRunInstance": "https://mcxxxxx.rest.marketingcloudapis.com/legacy/v1/beta/bulk/automations/automation/instance/VEhxcm1sTk5DMEdhZnQ1S0ZsMURIZzoyNjow",
125
+ "instanceId": "VEhxcm1sTk5DMEdhZnQ1S0ZsMURIZzoyNjow",
126
+ "automationInstance": "https://mcxxxxx.rest.marketingcloudapis.com/legacy/v1/beta/bulk/automations/automation/instance/VEhxcm1sTk5DMEdhZnQ1S0ZsMURIZzoyNjow",
127
+ "isPlatformObject": false,
128
+ "notifications": "https://mcxxxxx.rest.marketingcloudapis.com/legacy/v1/beta/hub/notifications/cDhLQ2o2NExxVVc5N3VZeHF5WEExUToxMjow",
129
+ "automationType": "scheduled",
130
+ "lastRunStatus": "Complete"
131
+ },
73
132
  {
74
133
  "id": "RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow",
75
134
  "key": "testExisting_automation",
@@ -77,7 +136,7 @@
77
136
  "name": "testExisting_automation",
78
137
  "description": "bla bla",
79
138
  "clientId": 9999999,
80
- "status": "Scheduled",
139
+ "status": "PausedSchedule",
81
140
  "createdBy": {
82
141
  "id": "NzE3MzUzNDA1OjQ6MA",
83
142
  "name": "Tom Tester",
@@ -0,0 +1 @@
1
+ { "id": "RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow-PAUSED" }
@@ -0,0 +1 @@
1
+ { "id": "RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow" }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "page": 1,
3
3
  "pageSize": 500,
4
- "count": 4,
4
+ "count": 5,
5
5
  "items": [
6
6
  {
7
7
  "enterpriseId": 1111111,
@@ -12,6 +12,15 @@
12
12
  "memberId": 9999999,
13
13
  "emailSendTime": "2024-05-15T08:37:08.587"
14
14
  },
15
+ {
16
+ "enterpriseId": 1111111,
17
+ "domain": "joern.berkefeld+test@accenture.com",
18
+ "status": "Verified",
19
+ "domainType": "UserDomain",
20
+ "isSendable": true,
21
+ "memberId": 9999999,
22
+ "emailSendTime": "2024-05-15T08:37:08.587"
23
+ },
15
24
  {
16
25
  "enterpriseId": 1111111,
17
26
  "domain": "mcdev.accenture.com",
@@ -1,5 +1,5 @@
1
1
  SELECT
2
- SubscriberKey AS testField
2
+ SubscriberKey as testField
3
3
  FROM
4
4
  _Subscribers
5
5
  WHERE
@@ -1,4 +1,4 @@
1
1
  SELECT
2
- SubscriberKey AS testField
2
+ SubscriberKey as testField
3
3
  FROM
4
4
  _Subscribers
@@ -1 +1,2 @@
1
+
1
2
  // dummy updated
@@ -1,5 +1,5 @@
1
1
  {
2
- "FallbackFromAddress": "",
2
+ "FallbackFromAddress": "joern.berkefeld+test@accenture.com",
3
3
  "AutoForwardToEmailAddress": "",
4
4
  "AutoForwardToName": "",
5
5
  "AutoReply": false,
@@ -1,5 +1,5 @@
1
1
  {
2
- "FallbackFromAddress": "",
2
+ "FallbackFromAddress": "joern.berkefeld+test@accenture.com",
3
3
  "CreatedDate": "2021-08-03T11:14:00",
4
4
  "ModifiedDate": "2021-08-03T11:14:00",
5
5
  "CustomerKey": "testExisting_senderProfile",
@@ -1,5 +1,5 @@
1
1
  {
2
- "FallbackFromAddress": "",
2
+ "FallbackFromAddress": "joern.berkefeld+test@accenture.com",
3
3
  "CreatedDate": "2021-08-03T11:14:00",
4
4
  "ModifiedDate": "2021-08-03T11:14:00",
5
5
  "CustomerKey": "testExisting_senderProfile",
@@ -65,7 +65,7 @@
65
65
  <AutoReply>false</AutoReply>
66
66
  <SenderHeaderEmailAddress />
67
67
  <SenderHeaderName />
68
- <FallbackFromAddress />
68
+ <FallbackFromAddress>joern.berkefeld+test@accenture.com</FallbackFromAddress>
69
69
  </Results>
70
70
  <Results xsi:type="SenderProfile">
71
71
  <Client>
@@ -1,5 +1,5 @@
1
1
  {
2
- "FallbackFromAddress": "",
2
+ "FallbackFromAddress": "joern.berkefeld+test@accenture.com",
3
3
  "AutoForwardToEmailAddress": "",
4
4
  "AutoForwardToName": "",
5
5
  "AutoReply": false,
@@ -153,21 +153,20 @@ describe('type: asset', () => {
153
153
  it('Should retrieve a asset & ensure non-ssjs code is not removed', async () => {
154
154
  // WHEN
155
155
  const retrieve = await handler.retrieve('testInstance/testBU', ['asset']);
156
-
157
156
  // THEN
158
157
  assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
159
158
  assert.equal(
160
159
  retrieve['testInstance/testBU'].asset
161
160
  ? Object.keys(retrieve['testInstance/testBU'].asset).length
162
161
  : 0,
163
- 9,
162
+ 12,
164
163
  'Unexpected number of assets in retrieve response'
165
164
  );
166
165
  // get results from cache
167
166
  const result = cache.getCache();
168
167
  assert.equal(
169
168
  result.asset ? Object.keys(result.asset).length : 0,
170
- 9,
169
+ 15,
171
170
  'Unexpected number of assets in cache'
172
171
  );
173
172
 
@@ -229,9 +228,120 @@ describe('type: asset', () => {
229
228
  )
230
229
  );
231
230
 
231
+ assert.deepEqual(
232
+ await getActualJson('test_coderesource_js', 'asset', 'coderesource'),
233
+ await testUtils.getExpectedJson(
234
+ '9999999',
235
+ 'asset',
236
+ 'test_coderesource_js-retrieve'
237
+ ),
238
+ 'returned metadata was not equal expected'
239
+ );
240
+ expect(
241
+ await getActualFile('test_coderesource_js', 'asset', 'coderesource', 'js')
242
+ ).to.equal(
243
+ await testUtils.getExpectedFile(
244
+ '9999999',
245
+ 'asset',
246
+ 'test_coderesource_js-retrieve',
247
+ 'js'
248
+ )
249
+ );
250
+
251
+ assert.deepEqual(
252
+ await getActualJson('test_coderesource_json', 'asset', 'coderesource'),
253
+ await testUtils.getExpectedJson(
254
+ '9999999',
255
+ 'asset',
256
+ 'test_coderesource_json-retrieve'
257
+ ),
258
+ 'returned metadata was not equal expected'
259
+ );
260
+ expect(
261
+ await getActualFile('test_coderesource_json', 'asset', 'coderesource', 'jsonc')
262
+ ).to.equal(
263
+ await testUtils.getExpectedFile(
264
+ '9999999',
265
+ 'asset',
266
+ 'test_coderesource_json-retrieve',
267
+ 'jsonc'
268
+ )
269
+ );
270
+
271
+ assert.deepEqual(
272
+ await getActualJson('test_coderesource_xml', 'asset', 'coderesource'),
273
+ await testUtils.getExpectedJson(
274
+ '9999999',
275
+ 'asset',
276
+ 'test_coderesource_xml-retrieve'
277
+ ),
278
+ 'returned metadata was not equal expected'
279
+ );
280
+ expect(
281
+ await getActualFile('test_coderesource_xml', 'asset', 'coderesource', 'xml')
282
+ ).to.equal(
283
+ await testUtils.getExpectedFile(
284
+ '9999999',
285
+ 'asset',
286
+ 'test_coderesource_xml-retrieve',
287
+ 'xml'
288
+ )
289
+ );
290
+
291
+ assert.equal(
292
+ testUtils.getAPIHistoryLength(),
293
+ 26,
294
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
295
+ );
296
+ return;
297
+ });
298
+
299
+ it('Should retrieve asset-cloudpage', async () => {
300
+ // WHEN
301
+ const retrieve = await handler.retrieve('testInstance/testBU', ['asset-cloudpage']);
302
+
303
+ // THEN
304
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
305
+ assert.equal(
306
+ retrieve['testInstance/testBU'].asset
307
+ ? Object.keys(retrieve['testInstance/testBU'].asset).length
308
+ : 0,
309
+ 3,
310
+ 'Unexpected number of assets in retrieve response'
311
+ );
312
+ // get results from cache
313
+ const result = cache.getCache();
314
+ assert.equal(
315
+ result.asset ? Object.keys(result.asset).length : 0,
316
+ 13,
317
+ 'Unexpected number of assets in cache'
318
+ );
319
+
320
+ assert.deepEqual(
321
+ await getActualJson('test_landingpage', 'asset', 'cloudpage'),
322
+ await testUtils.getExpectedJson('9999999', 'asset', 'test_landingpage-retrieve'),
323
+ 'returned metadata was not equal expected'
324
+ );
325
+
326
+ assert.deepEqual(
327
+ await getActualJson('test_microsite', 'asset', 'cloudpage'),
328
+ await testUtils.getExpectedJson('9999999', 'asset', 'test_microsite-retrieve'),
329
+ 'returned metadata was not equal expected'
330
+ );
331
+
332
+ assert.deepEqual(
333
+ await getActualJson('test_interactivecontent', 'asset', 'cloudpage'),
334
+ await testUtils.getExpectedJson(
335
+ '9999999',
336
+ 'asset',
337
+ 'test_interactivecontent-retrieve'
338
+ ),
339
+ 'returned metadata was not equal expected'
340
+ );
341
+
232
342
  assert.equal(
233
343
  testUtils.getAPIHistoryLength(),
234
- 22,
344
+ 10,
235
345
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
236
346
  );
237
347
  return;
@@ -258,7 +368,7 @@ describe('type: asset', () => {
258
368
  const result = cache.getCache();
259
369
  assert.equal(
260
370
  result.asset ? Object.keys(result.asset).length : 0,
261
- 7,
371
+ 10,
262
372
  'Unexpected number of assets in cache'
263
373
  );
264
374
 
@@ -722,7 +832,7 @@ describe('type: asset', () => {
722
832
  // download first before we test buildTemplate
723
833
  await handler.retrieve('testInstance/testBU', ['asset']);
724
834
 
725
- const expectedApiCallsRetrieve = 22;
835
+ const expectedApiCallsRetrieve = 26;
726
836
  assert.equal(
727
837
  testUtils.getAPIHistoryLength(),
728
838
  expectedApiCallsRetrieve,
@@ -867,7 +977,7 @@ describe('type: asset', () => {
867
977
  // download first before we test buildTemplate
868
978
  await handler.retrieve('testInstance/testBU', ['asset']);
869
979
 
870
- const expectedApiCallsRetrieve = 22;
980
+ const expectedApiCallsRetrieve = 26;
871
981
  assert.equal(
872
982
  testUtils.getAPIHistoryLength(),
873
983
  expectedApiCallsRetrieve,
@@ -1082,7 +1192,7 @@ describe('type: asset', () => {
1082
1192
  const result = cache.getCache();
1083
1193
  assert.equal(
1084
1194
  result.asset ? Object.keys(result.asset).length : 0,
1085
- 9,
1195
+ 12,
1086
1196
  'Unexpected number of assets in cache'
1087
1197
  );
1088
1198
  // check if conversions happened
@@ -1137,7 +1247,7 @@ describe('type: asset', () => {
1137
1247
 
1138
1248
  assert.equal(
1139
1249
  testUtils.getAPIHistoryLength(),
1140
- 24,
1250
+ 28,
1141
1251
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1142
1252
  );
1143
1253
  return;
@@ -1170,7 +1280,7 @@ describe('type: asset', () => {
1170
1280
  const result = cache.getCache();
1171
1281
  assert.equal(
1172
1282
  result.asset ? Object.keys(result.asset).length : 0,
1173
- 9,
1283
+ 12,
1174
1284
  'Unexpected number of assets in cache'
1175
1285
  );
1176
1286
  // check if conversions happened
@@ -1225,7 +1335,7 @@ describe('type: asset', () => {
1225
1335
 
1226
1336
  assert.equal(
1227
1337
  testUtils.getAPIHistoryLength(),
1228
- 24,
1338
+ 28,
1229
1339
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1230
1340
  );
1231
1341
  return;
@@ -1258,7 +1368,7 @@ describe('type: asset', () => {
1258
1368
  const result = cache.getCache();
1259
1369
  assert.equal(
1260
1370
  result.asset ? Object.keys(result.asset).length : 0,
1261
- 9,
1371
+ 12,
1262
1372
  'Unexpected number of assets in cache'
1263
1373
  );
1264
1374
  // check if conversions happened
@@ -1313,7 +1423,7 @@ describe('type: asset', () => {
1313
1423
 
1314
1424
  assert.equal(
1315
1425
  testUtils.getAPIHistoryLength(),
1316
- 24,
1426
+ 28,
1317
1427
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
1318
1428
  );
1319
1429
  return;
@@ -58,7 +58,7 @@ describe('type: automation', () => {
58
58
  );
59
59
  assert.equal(
60
60
  testUtils.getAPIHistoryLength(),
61
- 28,
61
+ 32,
62
62
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
63
63
  );
64
64
  return;
@@ -144,7 +144,7 @@ describe('type: automation', () => {
144
144
 
145
145
  assert.equal(
146
146
  testUtils.getAPIHistoryLength(),
147
- 35,
147
+ 50,
148
148
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
149
149
  );
150
150
  return;
@@ -212,7 +212,7 @@ describe('type: automation', () => {
212
212
 
213
213
  assert.equal(
214
214
  testUtils.getAPIHistoryLength(),
215
- 43,
215
+ 54,
216
216
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
217
217
  );
218
218
  return;
@@ -279,7 +279,7 @@ describe('type: automation', () => {
279
279
 
280
280
  assert.equal(
281
281
  testUtils.getAPIHistoryLength(),
282
- 39,
282
+ 54,
283
283
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
284
284
  );
285
285
  return;
@@ -318,7 +318,7 @@ describe('type: automation', () => {
318
318
  // check number of API calls
319
319
  assert.equal(
320
320
  testUtils.getAPIHistoryLength(),
321
- 25,
321
+ 26,
322
322
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
323
323
  );
324
324
  return;
@@ -362,7 +362,7 @@ describe('type: automation', () => {
362
362
  // check number of API calls
363
363
  assert.equal(
364
364
  testUtils.getAPIHistoryLength(),
365
- 54,
365
+ 70,
366
366
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
367
367
  );
368
368
  return;
@@ -406,7 +406,7 @@ describe('type: automation', () => {
406
406
  // check number of API calls
407
407
  assert.equal(
408
408
  testUtils.getAPIHistoryLength(),
409
- 56,
409
+ 72,
410
410
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
411
411
  );
412
412
  return;
@@ -450,7 +450,7 @@ describe('type: automation', () => {
450
450
  // check number of API calls
451
451
  assert.equal(
452
452
  testUtils.getAPIHistoryLength(),
453
- 57,
453
+ 72,
454
454
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
455
455
  );
456
456
  return;
@@ -494,7 +494,7 @@ describe('type: automation', () => {
494
494
  // check number of API calls
495
495
  assert.equal(
496
496
  testUtils.getAPIHistoryLength(),
497
- 49,
497
+ 65,
498
498
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
499
499
  );
500
500
  return;
@@ -538,7 +538,7 @@ describe('type: automation', () => {
538
538
  // check number of API calls
539
539
  assert.equal(
540
540
  testUtils.getAPIHistoryLength(),
541
- 55,
541
+ 72,
542
542
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
543
543
  );
544
544
  return;
@@ -582,7 +582,7 @@ describe('type: automation', () => {
582
582
  // check number of API calls
583
583
  assert.equal(
584
584
  testUtils.getAPIHistoryLength(),
585
- 57,
585
+ 72,
586
586
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
587
587
  );
588
588
  return;
@@ -626,7 +626,7 @@ describe('type: automation', () => {
626
626
  );
627
627
  assert.equal(
628
628
  testUtils.getAPIHistoryLength(),
629
- 27,
629
+ 28,
630
630
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
631
631
  );
632
632
  return;
@@ -670,7 +670,7 @@ describe('type: automation', () => {
670
670
  );
671
671
  assert.equal(
672
672
  testUtils.getAPIHistoryLength(),
673
- 28,
673
+ 32,
674
674
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
675
675
  );
676
676
  return;
@@ -679,7 +679,9 @@ describe('type: automation', () => {
679
679
  it('Should create a automation template via buildTemplate with --dependencies', async () => {
680
680
  // download first before we test buildTemplate
681
681
  await handler.retrieve('testInstance/testBU');
682
- const expectedApiCallsRetrieve = 93;
682
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
683
+
684
+ const expectedApiCallsRetrieve = 101;
683
685
  assert.equal(
684
686
  testUtils.getAPIHistoryLength(),
685
687
  expectedApiCallsRetrieve,
@@ -704,15 +706,16 @@ describe('type: automation', () => {
704
706
  Object.keys(templateResult),
705
707
  [
706
708
  'automation',
709
+ 'dataExtension',
707
710
  'dataExtract',
711
+ 'domainVerification',
708
712
  'emailSend',
709
- 'dataExtension',
710
- 'sendClassification',
711
- 'senderProfile',
712
713
  'fileTransfer',
713
714
  'importFile',
714
715
  'query',
715
716
  'script',
717
+ 'sendClassification',
718
+ 'senderProfile',
716
719
  'verification',
717
720
  ],
718
721
  'did not create deployment packages for all relevant types'
@@ -36,7 +36,7 @@ describe('type: dataExtract', () => {
36
36
  );
37
37
  assert.equal(
38
38
  testUtils.getAPIHistoryLength(),
39
- 6,
39
+ 9,
40
40
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
41
41
  );
42
42
  return;
@@ -76,7 +76,7 @@ describe('type: dataExtract', () => {
76
76
  // check number of API calls
77
77
  assert.equal(
78
78
  testUtils.getAPIHistoryLength(),
79
- 10,
79
+ 13,
80
80
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
81
81
  );
82
82
  return;
@@ -120,7 +120,7 @@ describe('type: dataExtract', () => {
120
120
  );
121
121
  assert.equal(
122
122
  testUtils.getAPIHistoryLength(),
123
- 6,
123
+ 9,
124
124
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
125
125
  );
126
126
  return;
@@ -162,7 +162,7 @@ describe('type: dataExtract', () => {
162
162
  );
163
163
  assert.equal(
164
164
  testUtils.getAPIHistoryLength(),
165
- 6,
165
+ 9,
166
166
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
167
167
  );
168
168
  return;
@@ -29,13 +29,13 @@ describe('type: domainVerification', () => {
29
29
  retrieve['testInstance/testBU'].domainVerification
30
30
  ? Object.keys(retrieve['testInstance/testBU'].domainVerification).length
31
31
  : 0,
32
- 4,
32
+ 5,
33
33
  'Unexpected number of assets in retrieve response'
34
34
  );
35
35
  const typeCache = cache.getCache()?.domainVerification;
36
36
  assert.equal(
37
37
  typeCache ? Object.keys(typeCache).length : 0,
38
- 4,
38
+ 5,
39
39
  'unexpected number of domainVerifications'
40
40
  );
41
41
  assert.deepEqual(
@@ -72,7 +72,7 @@ describe('type: domainVerification', () => {
72
72
  const cached = cache.getCache();
73
73
  assert.equal(
74
74
  cached.domainVerification ? Object.keys(cached.domainVerification).length : 0,
75
- 5,
75
+ 6,
76
76
  'unexpected number of domainVerifications in cache'
77
77
  );
78
78
  assert.deepEqual(
@@ -37,7 +37,7 @@ describe('type: folder', () => {
37
37
  const cached = cache.getCache();
38
38
  assert.equal(
39
39
  cached.folder ? Object.keys(cached.folder).length : 0,
40
- 38,
40
+ 40,
41
41
  'unexpected number of folders in cache'
42
42
  );
43
43
 
@@ -48,6 +48,7 @@ describe('type: folder', () => {
48
48
  : null,
49
49
  [
50
50
  'Data Extensions/my',
51
+ 'Data Extensions/testExisting_folder',
51
52
  'Data Extensions/my/sub',
52
53
  'Data Extensions/my/sub/path',
53
54
  'Data Extensions/my/sub/path/subpath',
@@ -73,6 +74,7 @@ describe('type: folder', () => {
73
74
  );
74
75
 
75
76
  const createSoapCallouts = testUtils.getSoapCallouts('Create', 'DataFolder');
77
+ const updateSoapCallouts = testUtils.getSoapCallouts('Update', 'DataFolder');
76
78
  // confirm created item
77
79
  assert.deepEqual(
78
80
  createSoapCallouts,
@@ -84,11 +86,19 @@ describe('type: folder', () => {
84
86
  ],
85
87
  'create-payload XL was not equal expected'
86
88
  );
89
+ // confirm updated item - this should have updated despite the folder name being different (changed case). The server compares folders case insensitively
90
+ assert.deepEqual(
91
+ updateSoapCallouts,
92
+ [
93
+ '<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><Body><UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI"><Objects xsi:type="DataFolder"><Name>testExisting_folder</Name><IsActive>true</IsActive><IsEditable>true</IsEditable><AllowChildren>true</AllowChildren><ParentFolder><ID>2</ID></ParentFolder><ID>66666</ID></Objects></UpdateRequest></Body><Header><fueloauth xmlns="http://exacttarget.com">9999999</fueloauth></Header></Envelope>',
94
+ ],
95
+ 'update-payload XL was not equal expected'
96
+ );
87
97
 
88
98
  // check number of API calls
89
99
  assert.equal(
90
100
  testUtils.getAPIHistoryLength(),
91
- 10,
101
+ 11,
92
102
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
93
103
  );
94
104
  return;