mcdev 5.1.0 → 5.3.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.
- package/.eslintrc.json +4 -4
- package/.fork/custom-commands.json +12 -0
- package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
- package/.github/PULL_REQUEST_TEMPLATE/pr_template_release.md +19 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
- package/.github/workflows/coverage-develop-branch.yml +0 -2
- package/.github/workflows/coverage-main-branch.yml +0 -2
- package/.github/workflows/coverage.yml +0 -2
- package/.husky/post-checkout +1 -0
- package/.husky/post-merge +1 -0
- package/.vscode/extensions.json +4 -0
- package/docs/dist/documentation.md +1034 -296
- package/lib/Deployer.js +25 -25
- package/lib/MetadataTypeDefinitions.js +2 -1
- package/lib/MetadataTypeInfo.js +2 -1
- package/lib/Retriever.js +1 -1
- package/lib/cli.js +165 -10
- package/lib/index.js +398 -95
- package/lib/metadataTypes/Asset.js +10 -11
- package/lib/metadataTypes/AttributeGroup.js +76 -2
- package/lib/metadataTypes/AttributeSet.js +367 -0
- package/lib/metadataTypes/Automation.js +483 -137
- package/lib/metadataTypes/DataExtension.js +465 -68
- package/lib/metadataTypes/DataExtensionField.js +31 -14
- package/lib/metadataTypes/Event.js +2 -3
- package/lib/metadataTypes/Folder.js +1 -1
- package/lib/metadataTypes/Journey.js +13 -7
- package/lib/metadataTypes/MetadataType.js +212 -54
- package/lib/metadataTypes/MobileKeyword.js +9 -9
- package/lib/metadataTypes/MobileMessage.js +5 -5
- package/lib/metadataTypes/Query.js +26 -10
- package/lib/metadataTypes/Script.js +3 -3
- package/lib/metadataTypes/TransactionalEmail.js +94 -17
- package/lib/metadataTypes/TransactionalMessage.js +3 -2
- package/lib/metadataTypes/TransactionalSMS.js +5 -5
- package/lib/metadataTypes/TriggeredSend.js +25 -50
- package/lib/metadataTypes/User.js +7 -4
- package/lib/metadataTypes/Verification.js +230 -0
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +119 -108
- package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +123 -43
- package/lib/metadataTypes/definitions/Automation.definition.js +23 -15
- package/lib/metadataTypes/definitions/ImportFile.definition.js +36 -6
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +19 -1
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +1 -0
- package/lib/metadataTypes/definitions/Verification.definition.js +88 -0
- package/lib/util/cache.js +9 -4
- package/lib/util/cli.js +40 -0
- package/lib/util/file.js +2 -2
- package/lib/util/init.js +84 -0
- package/lib/util/util.js +121 -13
- package/package.json +13 -13
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testExisting_dataExtensionShared.dataExtension-meta.json +59 -0
- package/test/mockRoot/deploy/testInstance/_ParentBU_/dataExtension/testNew_dataExtensionShared.dataExtension-meta.json +23 -0
- package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +1 -2
- package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +9 -6
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/testExisting_dataExtension.dataExtension-meta.json +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testExisting_dataExtract.dataExtract-meta.json +35 -0
- package/test/mockRoot/deploy/testInstance/testBU/dataExtract/testNew_dataExtract.dataExtract-meta.json +35 -0
- package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testExisting_fileTransfer.fileTransfer-meta.json +17 -0
- package/test/mockRoot/deploy/testInstance/testBU/fileTransfer/testNew_fileTransfer.fileTransfer-meta.json +17 -0
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testExisting_importFile.importFile-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/importFile/testNew_importFile.importFile-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.json +11 -0
- package/test/mockRoot/deploy/testInstance/testBU/query/testExisting_query_fixKeys.query-meta.sql +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.json +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testExisting_script.script-meta.ssjs +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.json +6 -0
- package/test/mockRoot/deploy/testInstance/testBU/script/testNew_script.script-meta.ssjs +1 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +3 -4
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +1 -6
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/verification/testExisting_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
- package/test/mockRoot/deploy/testInstance/testBU/verification/testNew_39f6a488-20eb-4ba0-b0b9.verification-meta.json +11 -0
- package/test/resourceFactory.js +77 -12
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDCustomerKey=testExisting_userANDEmaillike@-response.xml +27 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=falseANDEmaillike@-response.xml +156 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +87 -0
- package/test/resources/1111111/accountUser/retrieve-ActiveFlag=trueANDEmaillike@-response.xml +156 -0
- package/test/resources/1111111/accountUser/retrieve-CustomerKey=testExisting_userANDActiveFlag=trueANDEmailisNullORNamelikeapp userANDMustChangePassword=false-response.xml +27 -0
- package/test/resources/1111111/accountUserAccount/retrieve-AccountUser.AccountUserID=700301950-response.xml +60 -0
- package/test/resources/1111111/data/v1/customobjectdata/key/testExisting_dataExtensionShared/rowset/get-response.json +13 -0
- package/test/resources/1111111/dataExtension/create-expected.json +23 -0
- package/test/resources/1111111/dataExtension/create-response.xml +59 -0
- package/test/resources/1111111/dataExtension/retrieve-expected.json +55 -0
- package/test/resources/1111111/dataExtension/retrieve-expected.md +18 -0
- package/test/resources/1111111/dataExtension/retrieve-response.xml +27 -1
- package/test/resources/1111111/dataExtension/update-expected.json +55 -0
- package/test/resources/1111111/dataExtension/update-response.xml +57 -0
- package/test/resources/1111111/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtensionShared].[TriggerUpdate_randomNumber_]-response.xml +45 -0
- package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
- package/test/resources/1111111/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionSharedORDataExtension.CustomerKey=testExisting_dataExtensionShared-response.xml +98 -0
- package/test/resources/1111111/dataExtensionField/retrieve-response.xml +98 -0
- package/test/resources/1111111/dataExtensionTemplate/retrieve-response.xml +303 -0
- package/test/resources/1111111/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +387 -0
- package/test/resources/1111111/dataFolder/retrieve-response.xml +353 -9
- package/test/resources/1111111/user/retrieve-expected.md +4 -2
- package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
- package/test/resources/9999999/attributeSet/retrieve-expected.json +143 -0
- package/test/resources/9999999/automation/build-expected.json +5 -2
- package/test/resources/9999999/automation/create-expected.json +11 -8
- package/test/resources/9999999/automation/create-testNew_automation-expected.md +5 -4
- package/test/resources/9999999/automation/patch_fixKeys-pause-expected.json +44 -0
- package/test/resources/9999999/automation/patch_fixKeys-schedule-expected.json +44 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_pause-response.xml +42 -0
- package/test/resources/9999999/automation/perform-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +42 -0
- package/test/resources/9999999/automation/perform-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +42 -0
- package/test/resources/9999999/automation/retrieve-expected.json +5 -2
- package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +3 -2
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-ad2e-pause-response.xml +38 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_pause-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-08afb0e2-b00a-4c88-fixKey_schedule-response.xml +52 -0
- package/test/resources/9999999/automation/schedule-a8afb0e2-b00a-4c88-ad2e-1f7f8788c560-response.xml +52 -0
- package/test/resources/9999999/automation/template-expected.json +5 -2
- package/test/resources/9999999/automation/update-expected.json +1 -2
- package/test/resources/9999999/automation/update-testExisting_automation-expected.md +2 -2
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +7 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-pause/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_pause/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-fixKey_schedule/patch-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/a8afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +1 -1
- package/test/resources/9999999/automation/v1/automations/post-response.json +27 -19
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracts/post-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracttypes/get-response.json +50 -0
- package/test/resources/9999999/automation/v1/dataverifications/post-response.json +12 -0
- package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/delete-response.json +0 -0
- package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/get-response.json +12 -0
- package/test/resources/9999999/automation/v1/dataverifications/testExisting_39f6a488-20eb-4ba0-b0b9/patch-response.json +12 -0
- package/test/resources/9999999/automation/v1/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/patch-response.json +18 -0
- package/test/resources/9999999/automation/v1/filetransfers/post-response.json +18 -0
- package/test/resources/9999999/automation/v1/ftplocations/get-response.json +18 -0
- package/test/resources/9999999/automation/v1/imports/9d16f42c-2260-ed11-b849-48df37d1de8b/patch-response.json +31 -0
- package/test/resources/9999999/automation/v1/imports/get-response.json +1 -1
- package/test/resources/9999999/automation/v1/imports/post-response.json +30 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dae/actions/start/post-response.txt +1 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/get-response.json +17 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat_fixKeys/patch-response.json +18 -0
- package/test/resources/9999999/automation/v1/queries/get-response.json +18 -1
- package/test/resources/9999999/automation/v1/scripts/39f6a488-20eb-4ba0-b0b9-023725b574e4/patch-response.json +10 -0
- package/test/resources/9999999/automation/v1/scripts/get-response.json +12 -2
- package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
- package/test/resources/9999999/dataExtension/build-expected.json +16 -0
- package/test/resources/9999999/dataExtension/delete-response.xml +42 -0
- package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
- package/test/resources/9999999/dataExtension/retrieve-expected.json +16 -0
- package/test/resources/9999999/dataExtension/retrieve-expected.md +3 -1
- package/test/resources/9999999/dataExtension/template-expected.json +16 -0
- package/test/resources/9999999/dataExtension/update-expected.json +17 -1
- package/test/resources/9999999/dataExtensionField/retrieve-CustomerKey=[testExisting_dataExtension].[LastName]-response.xml +44 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +133 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
- package/test/resources/9999999/dataExtensionField/retrieve-response.xml +36 -1
- package/test/resources/9999999/dataExtract/build-expected.json +35 -0
- package/test/resources/9999999/dataExtract/get-expected.json +39 -0
- package/test/resources/9999999/dataExtract/patch-expected.json +37 -0
- package/test/resources/9999999/dataExtract/post-expected.json +37 -0
- package/test/resources/9999999/dataExtract/template-expected.json +35 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=contextual_suppression_listORContentType=publicationORContentType=suppression_listORContentType=mysubsORContentType=list-response.xml +136 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=synchronizeddataextensionORContentType=shared_salesforcedataextensionORContentType=shared_dataextensionORContentType=shared_dataORContentType=salesforcedataextensionORContentType=dataextensionORContentType=hidden-response.xml +117 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=triggered_send_journeybuilderORContentType=triggered_sendORContentType=hidden-response.xml +276 -0
- package/test/resources/9999999/dataFolder/retrieve-response.xml +23 -0
- package/test/resources/9999999/email/retrieve-response.xml +203 -0
- package/test/resources/9999999/fileTransfer/build-expected.json +15 -0
- package/test/resources/9999999/fileTransfer/get-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/patch-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/post-expected.json +17 -0
- package/test/resources/9999999/fileTransfer/template-expected.json +15 -0
- package/test/resources/9999999/hub/v1/contacts/schema/attributeGroups/get-response.json +628 -0
- package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +20194 -0
- package/test/resources/9999999/importFile/build-expected.json +27 -0
- package/test/resources/9999999/importFile/get-expected.json +29 -0
- package/test/resources/9999999/importFile/patch-expected.json +29 -0
- package/test/resources/9999999/importFile/post-expected.json +29 -0
- package/test/resources/9999999/importFile/template-expected.json +27 -0
- package/test/resources/9999999/interaction/v1/interactions/233d4413-922c-4568-85a5-e5cc77efc3be/delete-response.json +1 -0
- package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +1 -1
- package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +1 -1
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/delete-response.json +6 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_pause-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixKey_schedule-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_paused-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_fixedKey_scheduled-response.xml +32 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation_pause-response.xml +30 -0
- package/test/resources/9999999/program/retrieve-response.xml +21 -3
- package/test/resources/9999999/query/patch_fixKeys-expected.json +11 -0
- package/test/resources/9999999/query/patch_fixKeys-expected.sql +6 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixKeysANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testExisting_query_fixedKeysANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/queryDefinition/retrieve-CustomerKey=testNew_queryANDStatus=Active-response.xml +30 -0
- package/test/resources/9999999/script/build-expected.json +6 -0
- package/test/resources/9999999/script/build-expected.ssjs +1 -0
- package/test/resources/9999999/script/get-expected.json +8 -0
- package/test/resources/9999999/script/get-expected.ssjs +1 -0
- package/test/resources/9999999/script/get_noScriptTag-expected.html +1 -0
- package/test/resources/9999999/script/get_noScriptTag-expected.json +8 -0
- package/test/resources/9999999/script/patch-expected.json +8 -0
- package/test/resources/9999999/script/patch-expected.ssjs +1 -0
- package/test/resources/9999999/script/post-expected.json +8 -0
- package/test/resources/9999999/script/post-expected.ssjs +1 -0
- package/test/resources/9999999/script/template-expected.json +6 -0
- package/test/resources/9999999/script/template-expected.ssjs +1 -0
- package/test/resources/9999999/transactionalEmail/build-expected.json +3 -7
- package/test/resources/9999999/transactionalEmail/get-expected.json +3 -7
- package/test/resources/9999999/transactionalEmail/patch-expected.json +3 -7
- package/test/resources/9999999/transactionalEmail/post-expected.json +3 -7
- package/test/resources/9999999/transactionalEmail/template-expected.json +3 -7
- package/test/resources/9999999/triggeredSend/build-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/get-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/patch-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/post-expected.json +29 -0
- package/test/resources/9999999/triggeredSend/template-expected.json +29 -0
- package/test/resources/9999999/triggeredSendDefinition/create-response.xml +75 -0
- package/test/resources/9999999/triggeredSendDefinition/delete-response.xml +36 -0
- package/test/resources/9999999/triggeredSendDefinition/{retrieve-response.xml → retrieve-TriggeredSendStatusINNew,Active,Inactive,Moved,Canceled-response.xml} +4 -4
- package/test/resources/9999999/triggeredSendDefinition/update-response.xml +74 -0
- package/test/resources/9999999/verification/build-expected.json +11 -0
- package/test/resources/9999999/verification/get-expected.json +11 -0
- package/test/resources/9999999/verification/patch-expected.json +11 -0
- package/test/resources/9999999/verification/post-expected.json +11 -0
- package/test/resources/9999999/verification/template-expected.json +11 -0
- package/test/type.attributeGroup.test.js +55 -0
- package/test/type.attributeSet.test.js +55 -0
- package/test/type.automation.test.js +650 -17
- package/test/type.dataExtension.test.js +205 -46
- package/test/type.dataExtract.test.js +194 -0
- package/test/type.fileTransfer.test.js +192 -0
- package/test/type.importFile.test.js +193 -0
- package/test/type.journey.test.js +38 -11
- package/test/type.mobileKeyword.test.js +6 -5
- package/test/type.mobileMessage.test.js +6 -4
- package/test/type.query.test.js +470 -17
- package/test/type.script.test.js +372 -0
- package/test/type.transactionalEmail.test.js +12 -11
- package/test/type.transactionalPush.test.js +2 -4
- package/test/type.transactionalSMS.test.js +2 -4
- package/test/type.triggeredSend.test.js +154 -0
- package/test/type.user.test.js +22 -10
- package/test/type.verification.test.js +173 -0
- package/test/utils.js +11 -2
- package/types/mcdev.d.js +14 -0
- package/lib/metadataTypes/SetDefinition.js +0 -37
- /package/test/resources/1111111/accountUser/{retrieve-response.xml → retrieve-ActiveFlag=trueANDCustomerKey=testExisting_userANDEmaillike@-response.xml} +0 -0
- /package/test/resources/1111111/accountUserAccount/{retrieve-response.xml → retrieve-AccountUser.AccountUserIDIN700301950,700301951,7471228-response.xml} +0 -0
- /package/test/resources/1111111/businessUnit/{retrieve-response.xml → retrieve-ID=1111111-response.xml} +0 -0
- /package/test/resources/1111111/list/{retrieve-response.xml → retrieve-CustomerKey=All SubscribersORListName=All Subscribers-response.xml} +0 -0
- /package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml} +0 -0
- /package/test/resources/9999999/emailSendDefinition/{retrieve-response.xml → retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml} +0 -0
- /package/test/resources/9999999/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
const chai = require('chai');
|
|
2
|
+
const chaiFiles = require('chai-files');
|
|
3
|
+
const assert = chai.assert;
|
|
4
|
+
chai.use(chaiFiles);
|
|
5
|
+
const cache = require('../lib/util/cache');
|
|
6
|
+
const testUtils = require('./utils');
|
|
7
|
+
const handler = require('../lib/index');
|
|
8
|
+
|
|
9
|
+
describe('type: verification', () => {
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
testUtils.mockSetup();
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
testUtils.mockReset();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe('Retrieve ================', () => {
|
|
18
|
+
it('Should retrieve a verification', async () => {
|
|
19
|
+
// WHEN
|
|
20
|
+
const retrieved = await handler.retrieve('testInstance/testBU', ['verification']);
|
|
21
|
+
// THEN
|
|
22
|
+
assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
|
|
23
|
+
// get results from cache
|
|
24
|
+
const result = cache.getCache();
|
|
25
|
+
assert.equal(
|
|
26
|
+
result.verification ? Object.keys(result.verification).length : 0,
|
|
27
|
+
1,
|
|
28
|
+
'only one verification expected'
|
|
29
|
+
);
|
|
30
|
+
assert.equal(
|
|
31
|
+
retrieved['testInstance/testBU']?.verification
|
|
32
|
+
? Object.keys(retrieved['testInstance/testBU']?.verification).length
|
|
33
|
+
: 0,
|
|
34
|
+
1,
|
|
35
|
+
'one verifications to be retrieved'
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
assert.deepEqual(
|
|
39
|
+
await testUtils.getActualJson(
|
|
40
|
+
'testExisting_39f6a488-20eb-4ba0-b0b9',
|
|
41
|
+
'verification'
|
|
42
|
+
),
|
|
43
|
+
await testUtils.getExpectedJson('9999999', 'verification', 'get'),
|
|
44
|
+
'returned JSON was not equal expected'
|
|
45
|
+
);
|
|
46
|
+
assert.equal(
|
|
47
|
+
testUtils.getAPIHistoryLength(),
|
|
48
|
+
9,
|
|
49
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
50
|
+
);
|
|
51
|
+
return;
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('Deploy ================', () => {
|
|
55
|
+
beforeEach(() => {
|
|
56
|
+
testUtils.mockSetup(true);
|
|
57
|
+
});
|
|
58
|
+
it('Should create & upsert a verification', async () => {
|
|
59
|
+
// WHEN
|
|
60
|
+
|
|
61
|
+
const deployed = await handler.deploy('testInstance/testBU', ['verification']);
|
|
62
|
+
// THEN
|
|
63
|
+
assert.equal(process.exitCode, false, 'deploy should not have thrown an error');
|
|
64
|
+
// get results from cache
|
|
65
|
+
const result = cache.getCache();
|
|
66
|
+
assert.equal(
|
|
67
|
+
result.verification ? Object.keys(result.verification).length : 0,
|
|
68
|
+
2,
|
|
69
|
+
'two verifications expected'
|
|
70
|
+
);
|
|
71
|
+
assert.equal(
|
|
72
|
+
deployed['testInstance/testBU']?.verification
|
|
73
|
+
? Object.keys(deployed['testInstance/testBU']?.verification).length
|
|
74
|
+
: 0,
|
|
75
|
+
2,
|
|
76
|
+
'two verifications to be deployed'
|
|
77
|
+
);
|
|
78
|
+
// confirm created item
|
|
79
|
+
assert.deepEqual(
|
|
80
|
+
await testUtils.getActualJson('testNew_RANDOM_NEW_GUID', 'verification'),
|
|
81
|
+
await testUtils.getExpectedJson('9999999', 'verification', 'post'),
|
|
82
|
+
'returned new-JSON was not equal expected for insert verification'
|
|
83
|
+
);
|
|
84
|
+
// confirm updated item
|
|
85
|
+
assert.deepEqual(
|
|
86
|
+
await testUtils.getActualJson(
|
|
87
|
+
'testExisting_39f6a488-20eb-4ba0-b0b9',
|
|
88
|
+
'verification'
|
|
89
|
+
),
|
|
90
|
+
await testUtils.getExpectedJson('9999999', 'verification', 'patch'),
|
|
91
|
+
'returned existing-JSON was not equal expected for update verification'
|
|
92
|
+
);
|
|
93
|
+
// check number of API calls
|
|
94
|
+
assert.equal(
|
|
95
|
+
testUtils.getAPIHistoryLength(),
|
|
96
|
+
11,
|
|
97
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
98
|
+
);
|
|
99
|
+
return;
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('Templating ================', () => {
|
|
103
|
+
it('Should create a verification template via buildTemplate and build it', async () => {
|
|
104
|
+
// download first before we test buildTemplate
|
|
105
|
+
await handler.retrieve('testInstance/testBU', ['verification']);
|
|
106
|
+
// buildTemplate
|
|
107
|
+
const result = await handler.buildTemplate(
|
|
108
|
+
'testInstance/testBU',
|
|
109
|
+
'verification',
|
|
110
|
+
['testExisting_39f6a488-20eb-4ba0-b0b9'],
|
|
111
|
+
'testSourceMarket'
|
|
112
|
+
);
|
|
113
|
+
assert.equal(process.exitCode, false, 'buildTemplate should not have thrown an error');
|
|
114
|
+
assert.equal(
|
|
115
|
+
result.verification ? Object.keys(result.verification).length : 0,
|
|
116
|
+
1,
|
|
117
|
+
'only one verification expected'
|
|
118
|
+
);
|
|
119
|
+
assert.deepEqual(
|
|
120
|
+
await testUtils.getActualTemplateJson(
|
|
121
|
+
'testExisting_39f6a488-20eb-4ba0-b0b9',
|
|
122
|
+
'verification'
|
|
123
|
+
),
|
|
124
|
+
await testUtils.getExpectedJson('9999999', 'verification', 'template'),
|
|
125
|
+
'returned template JSON was not equal expected'
|
|
126
|
+
);
|
|
127
|
+
// buildDefinition
|
|
128
|
+
await handler.buildDefinition(
|
|
129
|
+
'testInstance/testBU',
|
|
130
|
+
'verification',
|
|
131
|
+
'testExisting_39f6a488-20eb-4ba0-b0b9',
|
|
132
|
+
'testTargetMarket'
|
|
133
|
+
);
|
|
134
|
+
assert.equal(
|
|
135
|
+
process.exitCode,
|
|
136
|
+
false,
|
|
137
|
+
'buildDefinition should not have thrown an error'
|
|
138
|
+
);
|
|
139
|
+
assert.deepEqual(
|
|
140
|
+
await testUtils.getActualDeployJson(
|
|
141
|
+
'testTemplated_39f6a488-20eb-4ba0-b0b9',
|
|
142
|
+
'verification'
|
|
143
|
+
),
|
|
144
|
+
await testUtils.getExpectedJson('9999999', 'verification', 'build'),
|
|
145
|
+
'returned deployment JSON was not equal expected'
|
|
146
|
+
);
|
|
147
|
+
assert.equal(
|
|
148
|
+
testUtils.getAPIHistoryLength(),
|
|
149
|
+
9,
|
|
150
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
151
|
+
);
|
|
152
|
+
return;
|
|
153
|
+
});
|
|
154
|
+
});
|
|
155
|
+
describe('Delete ================', () => {
|
|
156
|
+
it('Should delete the item', async () => {
|
|
157
|
+
// WHEN
|
|
158
|
+
const isDeleted = await handler.deleteByKey(
|
|
159
|
+
'testInstance/testBU',
|
|
160
|
+
'verification',
|
|
161
|
+
'testExisting_39f6a488-20eb-4ba0-b0b9'
|
|
162
|
+
);
|
|
163
|
+
// THEN
|
|
164
|
+
assert.equal(
|
|
165
|
+
process.exitCode,
|
|
166
|
+
0,
|
|
167
|
+
'deleteByKey should have thrown an error due to lack of support'
|
|
168
|
+
);
|
|
169
|
+
assert.equal(isDeleted, true, 'deleteByKey should have returned true for success');
|
|
170
|
+
return;
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
});
|
package/test/utils.js
CHANGED
|
@@ -112,7 +112,10 @@ exports.getExpectedFile = (mid, type, action, ext) =>
|
|
|
112
112
|
*/
|
|
113
113
|
|
|
114
114
|
exports.mockSetup = (isDeploy) => {
|
|
115
|
-
|
|
115
|
+
if (!isDeploy) {
|
|
116
|
+
// no need to execute this again - already done in standard setup
|
|
117
|
+
handler.setOptions({ debug: true, noLogFile: true });
|
|
118
|
+
}
|
|
116
119
|
apimock = new MockAdapter(axios, { onNoMatch: 'throwException' });
|
|
117
120
|
// set access_token to mid to allow for autorouting of mock to correct resources
|
|
118
121
|
apimock.onPost(authResources.success.url).reply((config) => {
|
|
@@ -205,7 +208,13 @@ exports.getAPIHistory = () => apimock.history;
|
|
|
205
208
|
function getAPIHistoryDebug() {
|
|
206
209
|
const historyArr = Object.values(apimock.history)
|
|
207
210
|
.flat()
|
|
208
|
-
.map((item) =>
|
|
211
|
+
.map((item) => {
|
|
212
|
+
const log = { method: item.method, url: item.url };
|
|
213
|
+
if (item.data) {
|
|
214
|
+
log.body = item.data;
|
|
215
|
+
}
|
|
216
|
+
return log;
|
|
217
|
+
});
|
|
209
218
|
return historyArr;
|
|
210
219
|
}
|
|
211
220
|
exports.getAPIHistoryDebug = getAPIHistoryDebug;
|
package/types/mcdev.d.js
CHANGED
|
@@ -251,6 +251,20 @@ const SDK = require('sfmc-sdk');
|
|
|
251
251
|
* @property {string} r__folder_Path folder path
|
|
252
252
|
* @property {string} [categoryId] holds folder ID, replaced with r__folder_Path during retrieve
|
|
253
253
|
*/
|
|
254
|
+
/**
|
|
255
|
+
* @typedef {object} VerificationItem
|
|
256
|
+
* @property {string} dataVerificationDefinitionId ID / Key
|
|
257
|
+
* @property {'IsEqualTo'|'IsLessThan'|'IsGreaterThan'|'IsOutsideRange'|'IsInsideRange'|'IsNotEqualTo'|'IsNotLessThan'|'IsNotGreaterThan'|'IsNotOutsideRange'|'IsNotInsideRange'} verificationType key
|
|
258
|
+
* @property {number} value1 used for all verificationTypes; lower value for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange
|
|
259
|
+
* @property {number} value2 only used for IsOutsideRange, IsInsideRange, IsNotOutsideRange, IsNotInsideRange; otherwise set to 0
|
|
260
|
+
* @property {boolean} shouldStopOnFailure flag to stop automation if verification fails
|
|
261
|
+
* @property {boolean} shouldEmailOnFailure flag to send email if verification fails
|
|
262
|
+
* @property {string} notificationEmailAddress email address to send notification to; empty string if shouldEmailOnFailure=false
|
|
263
|
+
* @property {string} notificationEmailMessage email message to send; empty string if shouldEmailOnFailure=false
|
|
264
|
+
* @property {number} createdBy user id of creator
|
|
265
|
+
* @property {string} r__dataExtension_CustomerKey key of target data extension
|
|
266
|
+
*/
|
|
267
|
+
|
|
254
268
|
/**
|
|
255
269
|
* @typedef {Object.<string, AutomationItem>} AutomationMap
|
|
256
270
|
* @typedef {{metadata:AutomationMap,type:string}} AutomationMapObj
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const TYPE = require('../../types/mcdev.d');
|
|
4
|
-
const MetadataType = require('./MetadataType');
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* SetDefinition MetadataType
|
|
8
|
-
*
|
|
9
|
-
* @augments MetadataType
|
|
10
|
-
*/
|
|
11
|
-
class SetDefinition extends MetadataType {
|
|
12
|
-
/**
|
|
13
|
-
* Retrieves Metadata of schema set Definitions.
|
|
14
|
-
*
|
|
15
|
-
* @param {string} retrieveDir Directory where retrieved metadata directory will be saved
|
|
16
|
-
* @param {void} [_] unused parameter
|
|
17
|
-
* @param {void} [__] unused parameter
|
|
18
|
-
* @param {string} [key] customer key of single item to retrieve
|
|
19
|
-
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
|
|
20
|
-
*/
|
|
21
|
-
static retrieve(retrieveDir, _, __, key) {
|
|
22
|
-
return super.retrieveREST(retrieveDir, '/hub/v1/contacts/schema/setDefinitions', null, key);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Retrieves Metadata of schema set definitions for caching.
|
|
26
|
-
*
|
|
27
|
-
* @returns {Promise.<TYPE.MetadataTypeMapObj>} Promise
|
|
28
|
-
*/
|
|
29
|
-
static retrieveForCache() {
|
|
30
|
-
return super.retrieveREST(null, '/hub/v1/contacts/schema/setDefinitions');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Assign definition to static attributes
|
|
35
|
-
SetDefinition.definition = require('../MetadataTypeDefinitions').setDefinition;
|
|
36
|
-
|
|
37
|
-
module.exports = SetDefinition;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/test/resources/1111111/role/{retrieve-response.xml → retrieve-IsPrivate=false-response.xml}
RENAMED
|
File without changes
|
|
File without changes
|