mcdev 7.0.4 → 7.1.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 (350) hide show
  1. package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
  2. package/.husky/post-checkout +1 -1
  3. package/.husky/post-merge +7 -1
  4. package/.husky/pre-commit +2 -0
  5. package/@types/lib/Builder.d.ts.map +1 -1
  6. package/@types/lib/Deployer.d.ts +3 -0
  7. package/@types/lib/Deployer.d.ts.map +1 -1
  8. package/@types/lib/Retriever.d.ts.map +1 -1
  9. package/@types/lib/index.d.ts +70 -19
  10. package/@types/lib/index.d.ts.map +1 -1
  11. package/@types/lib/metadataTypes/Asset.d.ts +107 -16
  12. package/@types/lib/metadataTypes/Asset.d.ts.map +1 -1
  13. package/@types/lib/metadataTypes/AttributeGroup.d.ts +3 -0
  14. package/@types/lib/metadataTypes/AttributeGroup.d.ts.map +1 -1
  15. package/@types/lib/metadataTypes/AttributeSet.d.ts +80 -0
  16. package/@types/lib/metadataTypes/AttributeSet.d.ts.map +1 -1
  17. package/@types/lib/metadataTypes/Automation.d.ts +11 -0
  18. package/@types/lib/metadataTypes/Automation.d.ts.map +1 -1
  19. package/@types/lib/metadataTypes/Campaign.d.ts +1 -0
  20. package/@types/lib/metadataTypes/Campaign.d.ts.map +1 -1
  21. package/@types/lib/metadataTypes/ContentArea.d.ts +1 -0
  22. package/@types/lib/metadataTypes/ContentArea.d.ts.map +1 -1
  23. package/@types/lib/metadataTypes/DataExtension.d.ts +5 -2
  24. package/@types/lib/metadataTypes/DataExtension.d.ts.map +1 -1
  25. package/@types/lib/metadataTypes/DataExtensionField.d.ts +3 -4
  26. package/@types/lib/metadataTypes/DataExtensionField.d.ts.map +1 -1
  27. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts +1 -0
  28. package/@types/lib/metadataTypes/DataExtensionTemplate.d.ts.map +1 -1
  29. package/@types/lib/metadataTypes/DataExtract.d.ts +1 -0
  30. package/@types/lib/metadataTypes/DataExtract.d.ts.map +1 -1
  31. package/@types/lib/metadataTypes/DataExtractType.d.ts +1 -0
  32. package/@types/lib/metadataTypes/DataExtractType.d.ts.map +1 -1
  33. package/@types/lib/metadataTypes/DeliveryProfile.d.ts +1 -0
  34. package/@types/lib/metadataTypes/DeliveryProfile.d.ts.map +1 -1
  35. package/@types/lib/metadataTypes/Discovery.d.ts +1 -0
  36. package/@types/lib/metadataTypes/Discovery.d.ts.map +1 -1
  37. package/@types/lib/metadataTypes/Email.d.ts +1 -0
  38. package/@types/lib/metadataTypes/Email.d.ts.map +1 -1
  39. package/@types/lib/metadataTypes/EmailSend.d.ts +9 -1
  40. package/@types/lib/metadataTypes/EmailSend.d.ts.map +1 -1
  41. package/@types/lib/metadataTypes/Event.d.ts +99 -0
  42. package/@types/lib/metadataTypes/Event.d.ts.map +1 -1
  43. package/@types/lib/metadataTypes/FileLocation.d.ts +1 -0
  44. package/@types/lib/metadataTypes/FileLocation.d.ts.map +1 -1
  45. package/@types/lib/metadataTypes/FileTransfer.d.ts +1 -0
  46. package/@types/lib/metadataTypes/FileTransfer.d.ts.map +1 -1
  47. package/@types/lib/metadataTypes/Filter.d.ts +1 -0
  48. package/@types/lib/metadataTypes/Filter.d.ts.map +1 -1
  49. package/@types/lib/metadataTypes/Folder.d.ts +39 -25
  50. package/@types/lib/metadataTypes/Folder.d.ts.map +1 -1
  51. package/@types/lib/metadataTypes/ImportFile.d.ts +30 -1
  52. package/@types/lib/metadataTypes/ImportFile.d.ts.map +1 -1
  53. package/@types/lib/metadataTypes/Journey.d.ts +123 -3
  54. package/@types/lib/metadataTypes/Journey.d.ts.map +1 -1
  55. package/@types/lib/metadataTypes/List.d.ts +1 -0
  56. package/@types/lib/metadataTypes/List.d.ts.map +1 -1
  57. package/@types/lib/metadataTypes/MetadataType.d.ts +50 -3
  58. package/@types/lib/metadataTypes/MetadataType.d.ts.map +1 -1
  59. package/@types/lib/metadataTypes/MobileCode.d.ts +1 -0
  60. package/@types/lib/metadataTypes/MobileCode.d.ts.map +1 -1
  61. package/@types/lib/metadataTypes/MobileKeyword.d.ts +9 -0
  62. package/@types/lib/metadataTypes/MobileKeyword.d.ts.map +1 -1
  63. package/@types/lib/metadataTypes/MobileMessage.d.ts +4 -0
  64. package/@types/lib/metadataTypes/MobileMessage.d.ts.map +1 -1
  65. package/@types/lib/metadataTypes/Query.d.ts +3 -0
  66. package/@types/lib/metadataTypes/Query.d.ts.map +1 -1
  67. package/@types/lib/metadataTypes/Role.d.ts +1 -0
  68. package/@types/lib/metadataTypes/Role.d.ts.map +1 -1
  69. package/@types/lib/metadataTypes/Script.d.ts +3 -1
  70. package/@types/lib/metadataTypes/Script.d.ts.map +1 -1
  71. package/@types/lib/metadataTypes/SendClassification.d.ts +3 -0
  72. package/@types/lib/metadataTypes/SendClassification.d.ts.map +1 -1
  73. package/@types/lib/metadataTypes/SenderProfile.d.ts +1 -6
  74. package/@types/lib/metadataTypes/SenderProfile.d.ts.map +1 -1
  75. package/@types/lib/metadataTypes/TransactionalEmail.d.ts +6 -0
  76. package/@types/lib/metadataTypes/TransactionalEmail.d.ts.map +1 -1
  77. package/@types/lib/metadataTypes/TransactionalMessage.d.ts +1 -0
  78. package/@types/lib/metadataTypes/TransactionalMessage.d.ts.map +1 -1
  79. package/@types/lib/metadataTypes/TransactionalPush.d.ts +3 -0
  80. package/@types/lib/metadataTypes/TransactionalPush.d.ts.map +1 -1
  81. package/@types/lib/metadataTypes/TransactionalSMS.d.ts +4 -0
  82. package/@types/lib/metadataTypes/TransactionalSMS.d.ts.map +1 -1
  83. package/@types/lib/metadataTypes/TriggeredSend.d.ts +6 -6
  84. package/@types/lib/metadataTypes/TriggeredSend.d.ts.map +1 -1
  85. package/@types/lib/metadataTypes/User.d.ts +1 -0
  86. package/@types/lib/metadataTypes/User.d.ts.map +1 -1
  87. package/@types/lib/metadataTypes/Verification.d.ts +3 -0
  88. package/@types/lib/metadataTypes/Verification.d.ts.map +1 -1
  89. package/@types/lib/metadataTypes/definitions/Asset.definition.d.ts +78 -14
  90. package/@types/lib/metadataTypes/definitions/AttributeGroup.definition.d.ts +3 -0
  91. package/@types/lib/metadataTypes/definitions/AttributeSet.definition.d.ts +80 -0
  92. package/@types/lib/metadataTypes/definitions/Automation.definition.d.ts +16 -0
  93. package/@types/lib/metadataTypes/definitions/Campaign.definition.d.ts +1 -0
  94. package/@types/lib/metadataTypes/definitions/ContentArea.definition.d.ts +1 -0
  95. package/@types/lib/metadataTypes/definitions/DataExtension.definition.d.ts +1 -0
  96. package/@types/lib/metadataTypes/definitions/DataExtensionField.definition.d.ts +1 -0
  97. package/@types/lib/metadataTypes/definitions/DataExtensionTemplate.definition.d.ts +1 -0
  98. package/@types/lib/metadataTypes/definitions/DataExtract.definition.d.ts +1 -0
  99. package/@types/lib/metadataTypes/definitions/DataExtractType.definition.d.ts +1 -0
  100. package/@types/lib/metadataTypes/definitions/DeliveryProfile.definition.d.ts +1 -0
  101. package/@types/lib/metadataTypes/definitions/Discovery.definition.d.ts +1 -0
  102. package/@types/lib/metadataTypes/definitions/Email.definition.d.ts +1 -0
  103. package/@types/lib/metadataTypes/definitions/EmailSend.definition.d.ts +9 -1
  104. package/@types/lib/metadataTypes/definitions/Event.definition.d.ts +99 -0
  105. package/@types/lib/metadataTypes/definitions/FileLocation.definition.d.ts +1 -0
  106. package/@types/lib/metadataTypes/definitions/FileTransfer.definition.d.ts +1 -0
  107. package/@types/lib/metadataTypes/definitions/Filter.definition.d.ts +1 -0
  108. package/@types/lib/metadataTypes/definitions/Folder.definition.d.ts +1 -0
  109. package/@types/lib/metadataTypes/definitions/ImportFile.definition.d.ts +30 -1
  110. package/@types/lib/metadataTypes/definitions/Journey.definition.d.ts +94 -0
  111. package/@types/lib/metadataTypes/definitions/List.definition.d.ts +1 -0
  112. package/@types/lib/metadataTypes/definitions/MobileCode.definition.d.ts +1 -0
  113. package/@types/lib/metadataTypes/definitions/MobileKeyword.definition.d.ts +9 -0
  114. package/@types/lib/metadataTypes/definitions/MobileMessage.definition.d.ts +4 -0
  115. package/@types/lib/metadataTypes/definitions/Query.definition.d.ts +3 -0
  116. package/@types/lib/metadataTypes/definitions/Role.definition.d.ts +1 -0
  117. package/@types/lib/metadataTypes/definitions/Script.definition.d.ts +1 -0
  118. package/@types/lib/metadataTypes/definitions/SendClassification.definition.d.ts +3 -0
  119. package/@types/lib/metadataTypes/definitions/SenderProfile.definition.d.ts +1 -0
  120. package/@types/lib/metadataTypes/definitions/TransactionalEmail.definition.d.ts +6 -0
  121. package/@types/lib/metadataTypes/definitions/TransactionalMessage.definition.d.ts +1 -0
  122. package/@types/lib/metadataTypes/definitions/TransactionalPush.definition.d.ts +3 -0
  123. package/@types/lib/metadataTypes/definitions/TransactionalSMS.definition.d.ts +4 -0
  124. package/@types/lib/metadataTypes/definitions/TriggeredSend.definition.d.ts +6 -0
  125. package/@types/lib/metadataTypes/definitions/User.definition.d.ts +1 -0
  126. package/@types/lib/metadataTypes/definitions/Verification.definition.d.ts +3 -0
  127. package/@types/lib/util/cache.d.ts +10 -0
  128. package/@types/lib/util/cache.d.ts.map +1 -1
  129. package/@types/lib/util/cli.d.ts +3 -6
  130. package/@types/lib/util/cli.d.ts.map +1 -1
  131. package/@types/lib/util/config.d.ts.map +1 -1
  132. package/@types/lib/util/devops.d.ts.map +1 -1
  133. package/@types/lib/util/file.d.ts.map +1 -1
  134. package/@types/lib/util/init.config.d.ts.map +1 -1
  135. package/@types/lib/util/init.d.ts.map +1 -1
  136. package/@types/lib/util/init.git.d.ts.map +1 -1
  137. package/@types/lib/util/replaceContentBlockReference.d.ts +27 -4
  138. package/@types/lib/util/replaceContentBlockReference.d.ts.map +1 -1
  139. package/@types/lib/util/util.d.ts +32 -3
  140. package/@types/lib/util/util.d.ts.map +1 -1
  141. package/@types/types/mcdev.d.d.ts +87 -0
  142. package/@types/types/mcdev.d.d.ts.map +1 -1
  143. package/boilerplate/files/.vscode/settings.json +1 -0
  144. package/boilerplate/forcedUpdates.json +4 -0
  145. package/boilerplate/gitignore-template +0 -1
  146. package/lib/Builder.js +13 -8
  147. package/lib/Deployer.js +15 -7
  148. package/lib/Retriever.js +13 -2
  149. package/lib/cli.js +179 -14
  150. package/lib/index.js +543 -205
  151. package/lib/metadataTypes/Asset.js +469 -218
  152. package/lib/metadataTypes/Automation.js +34 -0
  153. package/lib/metadataTypes/DataExtension.js +34 -29
  154. package/lib/metadataTypes/DataExtensionField.js +2 -2
  155. package/lib/metadataTypes/Event.js +28 -2
  156. package/lib/metadataTypes/Folder.js +63 -48
  157. package/lib/metadataTypes/ImportFile.js +70 -28
  158. package/lib/metadataTypes/Journey.js +475 -95
  159. package/lib/metadataTypes/MetadataType.js +280 -61
  160. package/lib/metadataTypes/MobileKeyword.js +12 -1
  161. package/lib/metadataTypes/Script.js +4 -3
  162. package/lib/metadataTypes/SenderProfile.js +17 -5
  163. package/lib/metadataTypes/TriggeredSend.js +20 -5
  164. package/lib/metadataTypes/definitions/Asset.definition.js +66 -4
  165. package/lib/metadataTypes/definitions/AttributeGroup.definition.js +1 -0
  166. package/lib/metadataTypes/definitions/AttributeSet.definition.js +86 -0
  167. package/lib/metadataTypes/definitions/Automation.definition.js +9 -0
  168. package/lib/metadataTypes/definitions/Campaign.definition.js +1 -0
  169. package/lib/metadataTypes/definitions/ContentArea.definition.js +1 -0
  170. package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
  171. package/lib/metadataTypes/definitions/DataExtensionField.definition.js +1 -0
  172. package/lib/metadataTypes/definitions/DataExtensionTemplate.definition.js +1 -0
  173. package/lib/metadataTypes/definitions/DataExtract.definition.js +2 -1
  174. package/lib/metadataTypes/definitions/DataExtractType.definition.js +1 -0
  175. package/lib/metadataTypes/definitions/DeliveryProfile.definition.js +1 -0
  176. package/lib/metadataTypes/definitions/Discovery.definition.js +1 -0
  177. package/lib/metadataTypes/definitions/Email.definition.js +1 -0
  178. package/lib/metadataTypes/definitions/EmailSend.definition.js +9 -1
  179. package/lib/metadataTypes/definitions/Event.definition.js +97 -96
  180. package/lib/metadataTypes/definitions/FileLocation.definition.js +1 -0
  181. package/lib/metadataTypes/definitions/FileTransfer.definition.js +4 -0
  182. package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
  183. package/lib/metadataTypes/definitions/Folder.definition.js +10 -8
  184. package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -2
  185. package/lib/metadataTypes/definitions/Journey.definition.js +111 -2
  186. package/lib/metadataTypes/definitions/List.definition.js +1 -0
  187. package/lib/metadataTypes/definitions/MobileCode.definition.js +1 -0
  188. package/lib/metadataTypes/definitions/MobileKeyword.definition.js +7 -0
  189. package/lib/metadataTypes/definitions/MobileMessage.definition.js +9 -0
  190. package/lib/metadataTypes/definitions/Query.definition.js +3 -0
  191. package/lib/metadataTypes/definitions/Role.definition.js +1 -0
  192. package/lib/metadataTypes/definitions/Script.definition.js +1 -0
  193. package/lib/metadataTypes/definitions/SendClassification.definition.js +4 -0
  194. package/lib/metadataTypes/definitions/SenderProfile.definition.js +1 -0
  195. package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +7 -0
  196. package/lib/metadataTypes/definitions/TransactionalMessage.definition.js +1 -0
  197. package/lib/metadataTypes/definitions/TransactionalPush.definition.js +3 -0
  198. package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +4 -0
  199. package/lib/metadataTypes/definitions/TriggeredSend.definition.js +12 -5
  200. package/lib/metadataTypes/definitions/User.definition.js +3 -0
  201. package/lib/metadataTypes/definitions/Verification.definition.js +1 -0
  202. package/lib/util/cache.js +35 -0
  203. package/lib/util/cli.js +96 -139
  204. package/lib/util/config.js +11 -19
  205. package/lib/util/devops.js +41 -41
  206. package/lib/util/file.js +1 -12
  207. package/lib/util/init.config.js +6 -10
  208. package/lib/util/init.git.js +43 -57
  209. package/lib/util/init.js +35 -59
  210. package/lib/util/replaceContentBlockReference.js +107 -60
  211. package/lib/util/util.js +90 -4
  212. package/package.json +14 -13
  213. package/test/general.test.js +1121 -167
  214. package/test/mockRoot/.mcdevrc.json +1 -1
  215. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withExistingDE.event-meta.json +1 -0
  216. package/test/mockRoot/deploy/testInstance/testBU/event/testNew_event_withSchema.event-meta.json +1 -0
  217. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD.mobileKeyword-meta.json +1 -0
  218. package/test/mockRoot/deploy/testInstance/testBU/mobileKeyword/4912312345678.TESTNEW_KEYWORD_BLOCKED.mobileKeyword-meta.json +1 -0
  219. package/test/resourceFactory.js +43 -11
  220. package/test/resources/1111111/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +364 -0
  221. package/test/resources/9999999/asset/{block-1157-retrieve-expected.html → build-asset_htmlblock-expected.html} +1 -1
  222. package/test/resources/9999999/asset/build-asset_htmlblock-expected.json +29 -0
  223. package/test/resources/9999999/asset/build-templatebasedemail-expected.json +65 -0
  224. package/test/resources/9999999/asset/resolveId-1295064-noPath-expected.json +3 -3
  225. package/test/resources/9999999/asset/resolveId-1295064-withPath-expected.json +3 -3
  226. package/test/resources/9999999/asset/retrieve-templatebasedemail-expected.json +65 -0
  227. package/test/resources/9999999/asset/template-emailTemplate-expected.json +20 -0
  228. package/test/resources/9999999/asset/template-templatebasedemail-expected.json +65 -0
  229. package/test/resources/9999999/asset/template-testExisting_asset_htmlblock-expected.json +29 -0
  230. package/test/resources/9999999/asset/testExisting_asset_htmlblock-retrieve-expected.html +23 -0
  231. package/test/resources/9999999/asset/{block-1157-retrieve-expected.json → testExisting_asset_htmlblock-retrieve-expected.json} +3 -3
  232. package/test/resources/9999999/asset/testExisting_asset_message-html-rcb-key-expected.html +6 -6
  233. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-id-expected.amp +1 -1
  234. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-key-expected.amp +4 -4
  235. package/test/resources/9999999/asset/testExisting_asset_message-preheader-rcb-name-expected.amp +1 -1
  236. package/test/resources/9999999/asset/testExisting_asset_message-text-rcb-key-expected.amp +4 -4
  237. package/test/resources/9999999/asset/v1/content/assets/1295064/get-response.json +4 -4
  238. package/test/resources/9999999/asset/v1/content/assets/1295065/get-response.json +60 -0
  239. package/test/resources/9999999/asset/v1/content/assets/1295066/get-response.json +60 -0
  240. package/test/resources/9999999/asset/v1/content/assets/5289/get-response.json +75 -0
  241. package/test/resources/9999999/asset/v1/content/assets/808714/get-response.json +3 -3
  242. package/test/resources/9999999/asset/v1/content/assets/950143/get-response.json +97 -0
  243. package/test/resources/9999999/asset/v1/content/assets/get-response-customerKey=testExisting_asset.json +1 -1
  244. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN195,196,197,198,199,200,201,202,203,210,211,212,213,3.json +78 -2
  245. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,207,208,209,5,214,4,215,216.json +370 -0
  246. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,14,193,194,15,195,196,197,198,199,200,201,202,203,210,211,212,213,3,215,216,217,218,219,220,221,222.json +243 -0
  247. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1,207,208,209,5.json +229 -0
  248. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN205,206,230,232,1.json +98 -1
  249. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN217,218,219,220,221,222,223,224,225,226,227,228.json +7 -0
  250. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN223,224,225,226,227,228,214,4.json +35 -0
  251. package/test/resources/9999999/asset/v1/content/assets/query/post-response-assetType.idIN223,224,225,226,227,228.json +7 -0
  252. package/test/resources/9999999/asset/v1/content/assets/query/{post-response-customerKey=mcdev-issue-1157.json → post-response-customerKey=testExisting_asset_htmlblock.json} +2 -2
  253. package/test/resources/9999999/automation/v1/imports/d2474efb-a449-ef11-b876-f40343c95928/get-response.json +37 -0
  254. package/test/resources/9999999/automation/v1/imports/get-response.json +32 -1
  255. package/test/resources/9999999/automation/v1/queries/get-response-Name=testExisting_query.json +24 -0
  256. package/test/resources/9999999/automation/v1/scripts/get-response-name=testExisting_script.json +17 -0
  257. package/test/resources/9999999/automation/v1/scripts/get-response.json +2 -2
  258. package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-QAA-response.xml +70 -0
  259. package/test/resources/9999999/dataFolder/retrieve-ContentType=asset-shared-response.xml +70 -0
  260. package/test/resources/9999999/dataFolder/retrieve-ContentType=journey-response.xml +48 -0
  261. 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 +519 -0
  262. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-sha,dataexten,salesforc,shared_da,shared_da,shared_sa,synchroni,automatio,useriniti,journey,mysubs,list,publicati,queryacti,ssjsactiv,triggered,triggered-response.xml +519 -0
  263. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,journey-response.xml +92 -0
  264. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +115 -0
  265. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared,ssjsactivity-response.xml +92 -0
  266. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset,asset-shared-QAA-response.xml +70 -0
  267. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINasset-shared,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +431 -0
  268. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINautomations,queryactivity-response.xml +70 -0
  269. package/test/resources/9999999/dataFolder/{retrieve-response.xml → retrieve-ContentTypeINdataextension,hidden,queryactivity,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +32 -119
  270. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINdataextension,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +117 -0
  271. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINhidden,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml +46 -0
  272. package/test/resources/9999999/dataFolder/retrieve-ContentTypeINshared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-QAA-response.xml +251 -0
  273. package/test/resources/9999999/dataFolder/retrieve-response-.xml +519 -0
  274. package/test/resources/9999999/event/build-expected.json +0 -1
  275. package/test/resources/9999999/event/get-expected.json +0 -1
  276. package/test/resources/9999999/event/post_withExistingDE-callout-expected.json +3 -0
  277. package/test/resources/9999999/event/post_withExistingDE-expected.json +2 -0
  278. package/test/resources/9999999/event/post_withSchema-callout-expected.json +3 -0
  279. package/test/resources/9999999/event/post_withSchema-expected.json +2 -0
  280. package/test/resources/9999999/event/put-callout-expected.json +3 -1
  281. package/test/resources/9999999/event/put-expected.json +2 -2
  282. package/test/resources/9999999/event/template-expected.json +0 -1
  283. package/test/resources/9999999/importFile/build-expected.json +2 -4
  284. package/test/resources/9999999/importFile/get-dataImport-expected.json +36 -0
  285. package/test/resources/9999999/importFile/get-expected.json +2 -4
  286. package/test/resources/9999999/importFile/get-sms-expected.json +2 -1
  287. package/test/resources/9999999/importFile/patch-expected.json +2 -4
  288. package/test/resources/9999999/importFile/post-expected.json +2 -4
  289. package/test/resources/9999999/importFile/template-expected.json +2 -4
  290. package/test/resources/9999999/interaction/v1/eventDefinitions/key_testExisting_event/put-response.json +2 -1
  291. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withExistingDE-response.json +2 -0
  292. package/test/resources/9999999/interaction/v1/eventDefinitions/post_withSchema-response.json +2 -0
  293. package/test/resources/9999999/interaction/v1/interactions/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/get-response.json +4 -4
  294. package/test/resources/9999999/interaction/v1/interactions/key_testExisting_journey_Quicksend/get-response.json +4 -4
  295. package/test/resources/9999999/interaction/v1/interactions/publishAsync/3c3f4112-9b43-43ca-8a89-aa0375b2c1a2/post-response.json +4 -0
  296. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-failed.json +34 -0
  297. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-success.json +5 -0
  298. package/test/resources/9999999/interaction/v1/interactions/publishStatus/45f06c0a-3ed2-48b2-a6a8-b5119253f01c/get-response-successWarnings.json +36 -0
  299. package/test/resources/9999999/journey/build-expected.json +5 -5
  300. package/test/resources/9999999/journey/get-multistep-expected.json +1 -1
  301. package/test/resources/9999999/journey/get-quicksend-expected.json +5 -5
  302. package/test/resources/9999999/journey/get-quicksend-rcb-id-expected.json +1 -1
  303. package/test/resources/9999999/journey/get-quicksend-rcb-key-expected.json +7 -7
  304. package/test/resources/9999999/journey/get-quicksend-rcb-name-expected.json +1 -1
  305. package/test/resources/9999999/journey/post-expected.json +1 -1
  306. package/test/resources/9999999/journey/publish-callout-expected.json +1 -0
  307. package/test/resources/9999999/journey/put-expected.json +1 -1
  308. package/test/resources/9999999/journey/template-expected.json +5 -5
  309. package/test/resources/9999999/mobileKeyword/build-expected.json +1 -0
  310. package/test/resources/9999999/mobileKeyword/get-expected.json +1 -0
  311. package/test/resources/9999999/mobileKeyword/post-create-expected.json +1 -0
  312. package/test/resources/9999999/mobileKeyword/template-expected.json +1 -0
  313. package/test/resources/{1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → 9999999/queryDefinition/retrieve-CustomerKey=badANDStatus=Active-response.xml} +10 -11
  314. package/test/resources/9999999/script/get_ampincluded-rcb-key-expected.html +2 -2
  315. package/test/resources/9999999/script/get_ampscript-expected.html +1 -0
  316. package/test/resources/9999999/script/get_ampscript-rcb-id-expected.html +1 -0
  317. package/test/resources/9999999/script/get_ampscript-rcb-key-expected.html +3 -2
  318. package/test/resources/9999999/script/get_ampscript-rcb-name-expected.html +3 -0
  319. package/test/resources/9999999/script/get_mixed-expected.html +2 -2
  320. package/test/resources/9999999/script/get_mixed-rcb-key-expected.html +2 -2
  321. package/test/resources/9999999/senderProfile/get-rcb-key-expected.json +4 -4
  322. package/test/resources/9999999/senderProfile/retrieve-response.xml +1 -1
  323. package/test/resources/9999999/triggeredSend/get-rcb-key-expected.json +4 -4
  324. package/test/resources/9999999/triggeredSendDefinition/retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml +1 -1
  325. package/test/type.asset.test.js +232 -39
  326. package/test/type.automation.test.js +121 -77
  327. package/test/type.dataExtract.test.js +4 -4
  328. package/test/type.emailSend.test.js +3 -3
  329. package/test/type.event.test.js +0 -2
  330. package/test/type.importFile.test.js +12 -7
  331. package/test/type.journey.test.js +322 -9
  332. package/test/type.query.test.js +33 -29
  333. package/test/type.script.test.js +61 -11
  334. package/test/type.senderProfile.test.js +36 -3
  335. package/test/type.transactionalEmail.test.js +3 -3
  336. package/test/type.triggeredSend.test.js +75 -6
  337. package/test/utils.js +13 -3
  338. package/types/mcdev.d.js +27 -1
  339. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
  340. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=falseANDEmaillike@-response.xml → retrieve-ActiveFlag=falseANDEmaillike@-QAA-response.xml} +0 -0
  341. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-QAA-response.xml} +0 -0
  342. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml → retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-QAA-response.xml} +0 -0
  343. /package/test/resources/1111111/accountUser/{retrieve-ActiveFlag=trueANDEmaillike@-response.xml → retrieve-ActiveFlag=trueANDEmaillike@-QAA-response.xml} +0 -0
  344. /package/test/resources/1111111/businessUnit/{retrieve-ID=1111111-response.xml → retrieve-ID=1111111-QAA-response.xml} +0 -0
  345. /package/test/resources/1111111/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
  346. /package/test/resources/1111111/dataFolder/{retrieve-response.xml → retrieve-response-.xml} +0 -0
  347. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=asset-sharedORContentType=asset-response.xml → retrieve-ContentTypeINasset,asset-shared-response.xml} +0 -0
  348. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml → retrieve-ContentTypeINcontextual_suppression_list,list,mysubs,publication,suppression_list-response.xml} +0 -0
  349. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml → retrieve-ContentTypeINdataextension,hidden,salesforcedataextension,shared_data,shared_dataextension,shared_salesforcedataextension,synchronizeddataextension-response.xml} +0 -0
  350. /package/test/resources/9999999/dataFolder/{retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml → retrieve-ContentTypeINhidden,triggered_send,triggered_send_journeybuilder-response.xml} +0 -0
@@ -5,8 +5,8 @@ line1
5
5
  %%[
6
6
  SET @test = 'bla bla'
7
7
  ]%%
8
- line2 %%= ContentBlockByKey("mcdev-issue-1157") =%% still line2; collapsed to line2 because it's assumed
8
+ line2 %%= ContentBlockByKey("testExisting_asset_htmlblock") =%% still line2; collapsed to line2 because it's assumed
9
9
  HTML
10
10
  <script runat="server">
11
- Platform.Function.ContentBlockByKey("mcdev-issue-1157");
11
+ Platform.Function.ContentBlockByKey("testExisting_asset_htmlblock");
12
12
  </script>
@@ -4,11 +4,11 @@
4
4
  "CustomerKey": "testExisting_senderProfile_rcb",
5
5
  "Name": "testExisting_senderProfile_rcb",
6
6
  "Description": "Send from joern.berkefeld@accenture.com",
7
- "FromName": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
8
- "FromAddress": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
7
+ "FromName": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
8
+ "FromAddress": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
9
9
  "UseDefaultRMMRules": true,
10
- "AutoForwardToEmailAddress": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
11
- "AutoForwardToName": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
10
+ "AutoForwardToEmailAddress": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
11
+ "AutoForwardToName": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
12
12
  "DirectForward": false,
13
13
  "AutoReply": false,
14
14
  "SenderHeaderEmailAddress": "",
@@ -66,7 +66,7 @@
66
66
  <Name>testExisting_senderProfile_rcb</Name>
67
67
  <Description>Send from joern.berkefeld@accenture.com</Description>
68
68
  <FromName>%%= ContentBlockByName("Content Builder\dont strip non ssjs content") =%%</FromName>
69
- <FromAddress>%%= ContentBlockByKey("mcdev-issue-1157") =%%</FromAddress>
69
+ <FromAddress>%%= ContentBlockByKey("testExisting_asset_htmlblock") =%%</FromAddress>
70
70
  <UseDefaultRMMRules>true</UseDefaultRMMRules>
71
71
  <AutoForwardToEmailAddress>%%= ContentBlockById(1295064) =%%</AutoForwardToEmailAddress>
72
72
  <AutoForwardToName>%%= ContentBlockById(1295064) =%%</AutoForwardToName>
@@ -7,10 +7,10 @@
7
7
  "CreatedDate": "2018-06-25T05:58:00",
8
8
  "CustomerKey": "testExisting_triggeredSend_rcb",
9
9
  "Description": "Unsubscribe_Email",
10
- "DynamicEmailSubject": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
11
- "EmailSubject": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
12
- "FromAddress": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
13
- "FromName": "%%= ContentBlockByKey(\"mcdev-issue-1157\") =%%",
10
+ "DynamicEmailSubject": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
11
+ "EmailSubject": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
12
+ "FromAddress": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
13
+ "FromName": "%%= ContentBlockByKey(\"testExisting_asset_htmlblock\") =%%",
14
14
  "IsMultipart": false,
15
15
  "IsWrapped": true,
16
16
  "Keyword": "",
@@ -94,7 +94,7 @@
94
94
  <CustomerKey>testExisting_senderProfile_rcb</CustomerKey>
95
95
  </SenderProfile>
96
96
  <FromName>%%= ContentBlockByName("Content Builder\dont strip non ssjs content") =%%</FromName>
97
- <FromAddress>%%= ContentBlockByKey("mcdev-issue-1157") =%%</FromAddress>
97
+ <FromAddress>%%= ContentBlockByKey("testExisting_asset_htmlblock") =%%</FromAddress>
98
98
  <SuppressTracking>false</SuppressTracking>
99
99
  <TriggeredSendType>Continuous</TriggeredSendType>
100
100
  <TriggeredSendStatus>New</TriggeredSendStatus>
@@ -156,24 +156,35 @@ describe('type: asset', () => {
156
156
  retrieve['testInstance/testBU'].asset
157
157
  ? Object.keys(retrieve['testInstance/testBU'].asset).length
158
158
  : 0,
159
- 5,
160
- 'only 5 assets expected in retrieve response'
159
+ 8,
160
+ 'Unexpected number of assets in retrieve response'
161
161
  );
162
162
  // get results from cache
163
163
  const result = cache.getCache();
164
164
  assert.equal(
165
165
  result.asset ? Object.keys(result.asset).length : 0,
166
- 5,
167
- 'only 5 assets expected in cache'
166
+ 8,
167
+ 'Unexpected number of assets in cache'
168
168
  );
169
169
 
170
170
  assert.deepEqual(
171
- await getActualJson('mcdev-issue-1157', 'asset', 'block'),
172
- await testUtils.getExpectedJson('9999999', 'asset', 'block-1157-retrieve'),
171
+ await getActualJson('testExisting_asset_htmlblock', 'asset', 'block'),
172
+ await testUtils.getExpectedJson(
173
+ '9999999',
174
+ 'asset',
175
+ 'testExisting_asset_htmlblock-retrieve'
176
+ ),
173
177
  'returned metadata was not equal expected'
174
178
  );
175
- expect(await getActualFile('mcdev-issue-1157', 'asset', 'block', 'html')).to.equal(
176
- await testUtils.getExpectedFile('9999999', 'asset', 'block-1157-retrieve', 'html')
179
+ expect(
180
+ await getActualFile('testExisting_asset_htmlblock', 'asset', 'block', 'html')
181
+ ).to.equal(
182
+ await testUtils.getExpectedFile(
183
+ '9999999',
184
+ 'asset',
185
+ 'testExisting_asset_htmlblock-retrieve',
186
+ 'html'
187
+ )
177
188
  );
178
189
 
179
190
  assert.deepEqual(
@@ -216,7 +227,50 @@ describe('type: asset', () => {
216
227
 
217
228
  assert.equal(
218
229
  testUtils.getAPIHistoryLength(),
219
- 15,
230
+ 21,
231
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
232
+ );
233
+ return;
234
+ });
235
+
236
+ it('Should retrieve a asset by key', async () => {
237
+ // WHEN
238
+ const retrieve = await handler.retrieve(
239
+ 'testInstance/testBU',
240
+ ['asset'],
241
+ ['testExisting_asset_htmlblock']
242
+ );
243
+
244
+ // THEN
245
+ assert.equal(process.exitCode, 0, 'retrieve should not have thrown an error');
246
+ assert.equal(
247
+ retrieve['testInstance/testBU'].asset
248
+ ? Object.keys(retrieve['testInstance/testBU'].asset).length
249
+ : 0,
250
+ 1,
251
+ 'Unexpected number of assets in retrieve response'
252
+ );
253
+ // get results from cache
254
+ const result = cache.getCache();
255
+ assert.equal(
256
+ result.asset ? Object.keys(result.asset).length : 0,
257
+ 6,
258
+ 'Unexpected number of assets in cache'
259
+ );
260
+
261
+ assert.deepEqual(
262
+ await getActualJson('testExisting_asset_htmlblock', 'asset', 'block'),
263
+ await testUtils.getExpectedJson(
264
+ '9999999',
265
+ 'asset',
266
+ 'testExisting_asset_htmlblock-retrieve'
267
+ ),
268
+ 'returned metadata was not equal expected'
269
+ );
270
+
271
+ assert.equal(
272
+ testUtils.getAPIHistoryLength(),
273
+ 8,
220
274
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
221
275
  );
222
276
  return;
@@ -229,6 +283,7 @@ describe('type: asset', () => {
229
283
  });
230
284
 
231
285
  it('Should create an asset with mis-matching memberId, automatically adding the MID suffix', async () => {
286
+ handler.setOptions({ autoMidSuffix: true });
232
287
  // WHEN
233
288
  const deployResult = await handler.deploy(
234
289
  'testInstance/testBU',
@@ -250,7 +305,7 @@ describe('type: asset', () => {
250
305
  assert.equal(
251
306
  upsertCallout?.customerKey,
252
307
  'testNew_asset-9999999',
253
- 'customerKey should be testNew_asset-9999999 due to automatic MID suffix'
308
+ 'customerKey should be testNew_asset-9999999 due to --autoMidSuffix'
254
309
  );
255
310
 
256
311
  // insert
@@ -262,14 +317,14 @@ describe('type: asset', () => {
262
317
 
263
318
  assert.equal(
264
319
  testUtils.getAPIHistoryLength(),
265
- 10,
320
+ 5,
266
321
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
267
322
  );
268
323
  return;
269
324
  });
270
325
 
271
- it('Should create an assetwith mis-matching memberId, --noMidSuffix and --keySuffix', async () => {
272
- handler.setOptions({ keySuffix: '_DEV', noMidSuffix: true });
326
+ it('Should create an assetwith mis-matching memberId and --keySuffix', async () => {
327
+ handler.setOptions({ keySuffix: '_DEV' });
273
328
  // WHEN
274
329
  const deployResult = await handler.deploy(
275
330
  'testInstance/testBU',
@@ -291,19 +346,18 @@ describe('type: asset', () => {
291
346
  assert.equal(
292
347
  upsertCallout?.customerKey,
293
348
  'testNew_asset_DEV',
294
- 'customerKey should be testNew_asset_DEV due to noMidSuffix and keySuffix'
349
+ 'customerKey should be testNew_asset_DEV due to --keySuffix'
295
350
  );
296
351
 
297
352
  assert.equal(
298
353
  testUtils.getAPIHistoryLength(),
299
- 10,
354
+ 5,
300
355
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
301
356
  );
302
357
  return;
303
358
  });
304
359
 
305
- it('Should create an assetwith mis-matching memberId, --noMidSuffix', async () => {
306
- handler.setOptions({ noMidSuffix: true });
360
+ it('Should create an assetwith mis-matching memberId', async () => {
307
361
  // WHEN
308
362
  const deployResult = await handler.deploy(
309
363
  'testInstance/testBU',
@@ -325,12 +379,12 @@ describe('type: asset', () => {
325
379
  assert.equal(
326
380
  upsertCallout?.customerKey,
327
381
  'testNew_asset',
328
- 'customerKey should be testNew_asset due to noMidSuffix'
382
+ 'customerKey should be testNew_asset'
329
383
  );
330
384
 
331
385
  assert.equal(
332
386
  testUtils.getAPIHistoryLength(),
333
- 10,
387
+ 5,
334
388
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
335
389
  );
336
390
  return;
@@ -342,7 +396,7 @@ describe('type: asset', () => {
342
396
  // download first before we test buildTemplate
343
397
  await handler.retrieve('testInstance/testBU', ['asset']);
344
398
 
345
- const expectedApiCallsRetrieve = 15;
399
+ const expectedApiCallsRetrieve = 21;
346
400
  assert.equal(
347
401
  testUtils.getAPIHistoryLength(),
348
402
  expectedApiCallsRetrieve,
@@ -353,16 +407,18 @@ describe('type: asset', () => {
353
407
  const result = await handler.buildTemplate(
354
408
  'testInstance/testBU',
355
409
  'asset',
356
- ['testExisting_asset_templatebasedemail'],
410
+ ['testExisting_asset_templatebasedemail', 'testExisting_asset_htmlblock'],
357
411
  'testSourceMarket'
358
412
  );
359
413
  // WHEN
360
414
  assert.equal(process.exitCode, 0, 'buildTemplate should not have thrown an error');
361
415
  assert.equal(
362
416
  result.asset ? Object.keys(result.asset).length : 0,
363
- 1,
364
- 'only one asset expected'
417
+ 2,
418
+ 'unexpected number of assets templated'
365
419
  );
420
+
421
+ // testExisting_asset_templatebasedemail
366
422
  assert.deepEqual(
367
423
  await getActualTemplateJson(
368
424
  'testExisting_asset_templatebasedemail',
@@ -372,7 +428,6 @@ describe('type: asset', () => {
372
428
  await testUtils.getExpectedJson('9999999', 'asset', 'template-templatebasedemail'),
373
429
  'returned template JSON of buildTemplate was not equal expected'
374
430
  );
375
-
376
431
  expect(
377
432
  await getActualTemplateFile(
378
433
  'testExisting_asset_templatebasedemail',
@@ -405,15 +460,21 @@ describe('type: asset', () => {
405
460
  'amp'
406
461
  )
407
462
  );
408
- // THEN
409
- await handler.buildDefinition(
463
+
464
+ const definitions = await handler.buildDefinition(
410
465
  'testInstance/testBU',
411
466
  'asset',
412
- ['testExisting_asset_templatebasedemail'],
467
+ ['testExisting_asset_templatebasedemail', 'testExisting_asset_htmlblock'],
413
468
  'testTargetMarket'
414
469
  );
415
470
  assert.equal(process.exitCode, 0, 'buildDefinition should not have thrown an error');
471
+ assert.equal(
472
+ definitions.asset ? Object.keys(definitions.asset).length : 0,
473
+ 2,
474
+ 'unexpected number of assets templated'
475
+ );
416
476
 
477
+ // testTemplated_asset_templatebasedemail
417
478
  assert.deepEqual(
418
479
  await getActualDeployJson(
419
480
  'testTemplated_asset_templatebasedemail',
@@ -456,6 +517,18 @@ describe('type: asset', () => {
456
517
  )
457
518
  );
458
519
 
520
+ // testTemplated_asset_htmlblock
521
+ assert.deepEqual(
522
+ await getActualDeployJson('testTemplated_asset_htmlblock', 'asset', 'block'),
523
+ await testUtils.getExpectedJson('9999999', 'asset', 'build-asset_htmlblock'),
524
+ 'returned deployment JSON was not equal expected'
525
+ );
526
+ expect(
527
+ await getActualDeployFile('testTemplated_asset_htmlblock', 'asset', 'block', 'html')
528
+ ).to.equal(
529
+ await testUtils.getExpectedFile('9999999', 'asset', 'build-asset_htmlblock', 'html')
530
+ );
531
+
459
532
  assert.equal(
460
533
  testUtils.getAPIHistoryLength() - expectedApiCallsRetrieve,
461
534
  0,
@@ -463,6 +536,114 @@ describe('type: asset', () => {
463
536
  );
464
537
  return;
465
538
  });
539
+
540
+ it('Should create a asset template via buildTemplate with --dependencies', async () => {
541
+ // download first before we test buildTemplate
542
+ await handler.retrieve('testInstance/testBU', ['asset']);
543
+
544
+ const expectedApiCallsRetrieve = 21;
545
+ assert.equal(
546
+ testUtils.getAPIHistoryLength(),
547
+ expectedApiCallsRetrieve,
548
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
549
+ );
550
+ handler.setOptions({ dependencies: true, skipInteraction: true });
551
+
552
+ // GIVEN there is a template
553
+ const templatedItems = await handler.buildTemplate(
554
+ 'testInstance/testBU',
555
+ 'asset',
556
+ ['testExisting_asset_templatebasedemail'],
557
+ 'testSourceMarket'
558
+ );
559
+ // WHEN
560
+ assert.equal(process.exitCode, 0, 'buildTemplate should not have thrown an error');
561
+ assert.equal(
562
+ templatedItems.asset ? templatedItems.asset.length : 0,
563
+ 5,
564
+ 'Unexpted number of assets templated'
565
+ );
566
+ assert.deepEqual(
567
+ templatedItems.asset.map((item) => item.customerKey),
568
+ [
569
+ '{{{prefix}}}asset_templatebasedemail',
570
+ '{{{prefix}}}asset_template',
571
+ '{{{prefix}}}asset_htmlblock',
572
+ '{{{prefix}}}htmlblock1',
573
+ '{{{prefix}}}htmlblock2',
574
+ ],
575
+ 'expected specific assets to be templated'
576
+ );
577
+
578
+ // testExisting_asset_templatebasedemail
579
+ assert.deepEqual(
580
+ await getActualTemplateJson(
581
+ 'testExisting_asset_templatebasedemail',
582
+ 'asset',
583
+ 'message'
584
+ ),
585
+ await testUtils.getExpectedJson('9999999', 'asset', 'template-templatebasedemail'),
586
+ 'returned template JSON of buildTemplate was not equal expected'
587
+ );
588
+
589
+ expect(
590
+ await getActualTemplateFile(
591
+ 'testExisting_asset_templatebasedemail',
592
+ 'asset',
593
+ 'message',
594
+ 'html',
595
+ 'views.html.content'
596
+ )
597
+ ).to.equal(
598
+ await testUtils.getExpectedFile(
599
+ '9999999',
600
+ 'asset',
601
+ 'template-templatebasedemail-html',
602
+ 'html'
603
+ )
604
+ );
605
+ expect(
606
+ await getActualTemplateFile(
607
+ 'testExisting_asset_templatebasedemail',
608
+ 'asset',
609
+ 'message',
610
+ 'amp',
611
+ 'views.preheader.content'
612
+ )
613
+ ).to.equal(
614
+ await testUtils.getExpectedFile(
615
+ '9999999',
616
+ 'asset',
617
+ 'template-templatebasedemail-preheader',
618
+ 'amp'
619
+ )
620
+ );
621
+
622
+ // testExisting_asset_template
623
+ assert.deepEqual(
624
+ await getActualTemplateJson('testExisting_asset_template', 'asset', 'template'),
625
+ await testUtils.getExpectedJson('9999999', 'asset', 'template-emailTemplate'),
626
+ 'returned template JSON of buildTemplate was not equal expected'
627
+ );
628
+
629
+ // testExisting_asset_htmlblock
630
+ assert.deepEqual(
631
+ await getActualTemplateJson('testExisting_asset_htmlblock', 'asset', 'block'),
632
+ await testUtils.getExpectedJson(
633
+ '9999999',
634
+ 'asset',
635
+ 'template-testExisting_asset_htmlblock'
636
+ ),
637
+ 'returned template JSON of buildTemplate was not equal expected'
638
+ );
639
+
640
+ assert.equal(
641
+ testUtils.getAPIHistoryLength() - expectedApiCallsRetrieve,
642
+ 4,
643
+ 'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
644
+ );
645
+ return;
646
+ });
466
647
  });
467
648
 
468
649
  describe('Delete ================', () => {
@@ -509,7 +690,11 @@ describe('type: asset', () => {
509
690
 
510
691
  it('Should resolve the id of the item AND find the asset locally', async () => {
511
692
  // prep test by retrieving the file
512
- await handler.retrieve('testInstance/testBU', ['asset-block'], ['mcdev-issue-1157']);
693
+ await handler.retrieve(
694
+ 'testInstance/testBU',
695
+ ['asset-block'],
696
+ ['testExisting_asset_htmlblock']
697
+ );
513
698
  // WHEN
514
699
  const resolveIdJson = await handler.resolveId(
515
700
  'testInstance/testBU',
@@ -558,15 +743,19 @@ describe('type: asset', () => {
558
743
  // retrieve result
559
744
  assert.deepEqual(
560
745
  replace['testInstance/testBU'].asset,
561
- ['testExisting_asset_message'],
746
+ [
747
+ 'testExisting_asset_htmlblock',
748
+ 'testExisting_htmlblock1',
749
+ 'testExisting_asset_message',
750
+ ],
562
751
  'should have found the right assets that need updating'
563
752
  );
564
753
  // get results from cache
565
754
  const result = cache.getCache();
566
755
  assert.equal(
567
756
  result.asset ? Object.keys(result.asset).length : 0,
568
- 5,
569
- 'only 5 assets expected'
757
+ 8,
758
+ 'Unexpected number of assets in cache'
570
759
  );
571
760
  // check if conversions happened
572
761
  expect(
@@ -620,7 +809,7 @@ describe('type: asset', () => {
620
809
 
621
810
  assert.equal(
622
811
  testUtils.getAPIHistoryLength(),
623
- 26,
812
+ 23,
624
813
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
625
814
  );
626
815
  return;
@@ -649,8 +838,8 @@ describe('type: asset', () => {
649
838
  const result = cache.getCache();
650
839
  assert.equal(
651
840
  result.asset ? Object.keys(result.asset).length : 0,
652
- 5,
653
- 'only 5 assets expected'
841
+ 8,
842
+ 'Unexpected number of assets in cache'
654
843
  );
655
844
  // check if conversions happened
656
845
  expect(
@@ -704,7 +893,7 @@ describe('type: asset', () => {
704
893
 
705
894
  assert.equal(
706
895
  testUtils.getAPIHistoryLength(),
707
- 26,
896
+ 23,
708
897
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
709
898
  );
710
899
  return;
@@ -726,15 +915,19 @@ describe('type: asset', () => {
726
915
  // retrieve result
727
916
  assert.deepEqual(
728
917
  replace['testInstance/testBU'].asset,
729
- ['testExisting_asset_message'],
918
+ [
919
+ 'testExisting_asset_htmlblock',
920
+ 'testExisting_htmlblock1',
921
+ 'testExisting_asset_message',
922
+ ],
730
923
  'should have found the right assets that need updating'
731
924
  );
732
925
  // get results from cache
733
926
  const result = cache.getCache();
734
927
  assert.equal(
735
928
  result.asset ? Object.keys(result.asset).length : 0,
736
- 5,
737
- 'only 5 assets expected'
929
+ 8,
930
+ 'Unexpected number of assets in cache'
738
931
  );
739
932
  // check if conversions happened
740
933
  expect(
@@ -788,7 +981,7 @@ describe('type: asset', () => {
788
981
 
789
982
  assert.equal(
790
983
  testUtils.getAPIHistoryLength(),
791
- 26,
984
+ 23,
792
985
  'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
793
986
  );
794
987
  return;