mcdev 5.0.2 → 5.2.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/.coverage-comment-template.svelte +177 -161
- package/.eslintrc.json +4 -4
- package/.github/ISSUE_TEMPLATE/bug.yml +2 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +2 -2
- package/.github/dependabot.yml +8 -0
- package/.github/workflows/coverage-base-update.yml +6 -2
- package/.github/workflows/coverage-develop-branch.yml +7 -8
- package/.github/workflows/coverage-main-branch.yml +7 -8
- package/.github/workflows/coverage.yml +7 -4
- package/.husky/post-checkout +4 -2
- package/.husky/post-merge +1 -0
- package/.vscode/extensions.json +4 -0
- package/docs/dist/documentation.md +756 -294
- package/lib/Deployer.js +28 -28
- package/lib/MetadataTypeDefinitions.js +1 -1
- package/lib/MetadataTypeInfo.js +1 -1
- package/lib/Retriever.js +1 -1
- package/lib/cli.js +184 -6
- package/lib/index.js +493 -22
- package/lib/metadataTypes/Asset.js +10 -11
- package/lib/metadataTypes/AttributeGroup.js +76 -2
- package/lib/metadataTypes/AttributeSet.js +260 -0
- package/lib/metadataTypes/Automation.js +771 -247
- package/lib/metadataTypes/DataExtension.js +7 -7
- package/lib/metadataTypes/DataExtensionField.js +1 -1
- package/lib/metadataTypes/Event.js +2 -3
- package/lib/metadataTypes/Folder.js +1 -1
- package/lib/metadataTypes/Journey.js +5 -6
- package/lib/metadataTypes/MetadataType.js +187 -60
- package/lib/metadataTypes/MobileKeyword.js +8 -8
- package/lib/metadataTypes/MobileMessage.js +5 -5
- package/lib/metadataTypes/Query.js +47 -5
- package/lib/metadataTypes/Script.js +3 -3
- package/lib/metadataTypes/TransactionalSMS.js +5 -5
- package/lib/metadataTypes/TriggeredSend.js +25 -50
- package/lib/metadataTypes/User.js +7 -4
- package/lib/metadataTypes/definitions/Asset.definition.js +1 -0
- package/lib/metadataTypes/definitions/AttributeGroup.definition.js +117 -106
- package/lib/metadataTypes/definitions/{SetDefinition.definition.js → AttributeSet.definition.js} +54 -27
- package/lib/metadataTypes/definitions/Automation.definition.js +74 -21
- package/lib/metadataTypes/definitions/DataExtension.definition.js +1 -0
- package/lib/metadataTypes/definitions/DataExtract.definition.js +1 -0
- package/lib/metadataTypes/definitions/EmailSend.definition.js +1 -0
- package/lib/metadataTypes/definitions/Event.definition.js +1 -0
- package/lib/metadataTypes/definitions/Filter.definition.js +1 -0
- package/lib/metadataTypes/definitions/ImportFile.definition.js +37 -6
- package/lib/metadataTypes/definitions/MobileKeyword.definition.js +1 -0
- package/lib/metadataTypes/definitions/Query.definition.js +1 -0
- package/lib/metadataTypes/definitions/Role.definition.js +1 -0
- package/lib/metadataTypes/definitions/TriggeredSend.definition.js +2 -0
- package/lib/metadataTypes/definitions/User.definition.js +1 -0
- package/lib/util/cache.js +9 -4
- package/lib/util/cli.js +40 -0
- package/lib/util/devops.js +13 -11
- package/lib/util/file.js +2 -2
- package/lib/util/init.js +84 -0
- package/lib/util/util.js +268 -137
- package/package.json +11 -11
- package/test/general.test.js +26 -0
- package/test/mockRoot/.mcdevrc.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/automation/testExisting_automation.automation-meta.json +52 -0
- package/test/mockRoot/deploy/testInstance/testBU/automation/testNew_automation.automation-meta.json +45 -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/{testExistingQuery.query-meta.json → testExisting_query.query-meta.json} +2 -2
- 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/query/{testNewQuery.query-meta.json → testNew_query.query-meta.json} +2 -2
- 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/triggeredSend/testExisting_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/mockRoot/deploy/testInstance/testBU/triggeredSend/testNew_triggeredSend.triggeredSend-meta.json +29 -0
- package/test/resourceFactory.js +132 -24
- 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/user/retrieve-expected.md +4 -2
- package/test/resources/9999999/attributeGroup/retrieve-expected.json +25 -0
- package/test/resources/9999999/attributeSet/retrieve-expected.json +748 -0
- package/test/resources/9999999/automation/build-expected.json +57 -0
- package/test/resources/9999999/automation/create-expected.json +45 -0
- package/test/resources/9999999/automation/create-testNew_automation-expected.md +28 -0
- package/test/resources/9999999/automation/delete-response.xml +40 -0
- 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 +57 -0
- package/test/resources/9999999/automation/retrieve-testExisting_automation-expected.md +30 -0
- 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 +57 -0
- package/test/resources/9999999/automation/update-expected.json +45 -0
- package/test/resources/9999999/automation/update-testExisting_automation-expected.md +28 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/get-response.json +85 -0
- package/test/resources/9999999/automation/v1/automations/08afb0e2-b00a-4c88-ad2e-1f7f8788c560/patch-response.json +85 -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 +85 -0
- package/test/resources/9999999/automation/v1/automations/post-response.json +86 -0
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/get-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracts/56c5370a-f988-4f36-b0ee-0f876573f6d7/patch-response.json +38 -0
- package/test/resources/9999999/automation/v1/dataextracts/get-response.json +20 -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/filetransfers/72c328ac-f5b0-4e37-91d3-a775666f15a6/get-response.json +18 -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/get-response.json +15 -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 +38 -0
- 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/actions/start/post-response.txt +1 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/get-response.json +2 -2
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
- 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 +22 -5
- package/test/resources/9999999/automation/v1/queries/post-response.json +2 -2
- 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 +27 -0
- package/test/resources/9999999/automation/v1/scripts/post-response.json +10 -0
- package/test/resources/9999999/dataExtension/retrieve-Name=testExisting_dataExtension-response.xml +52 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testExisting_dataExtension-response.xml +98 -0
- package/test/resources/9999999/dataExtensionField/retrieve-DataExtension.CustomerKey=testNew_dataExtensionORDataExtension.CustomerKey=testExisting_dataExtension-response.xml +99 -0
- 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=automations-response.xml +48 -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=queryactivity-response.xml +48 -0
- package/test/resources/9999999/dataFolder/retrieve-ContentType=ssjsactivity-response.xml +48 -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 +45 -0
- package/test/resources/9999999/email/retrieve-response.xml +203 -0
- package/test/resources/9999999/emailSendDefinition/retrieve-IsPlatformObject=falseANDDescriptionnotEqualsSFSendDefinition-response.xml +85 -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 +585 -0
- package/test/resources/9999999/hub/v1/contacts/schema/setDefinitions/get-response.json +19807 -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/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/get-response.json +21 -0
- package/test/resources/9999999/legacy/v1/beta/automations/notifications/RkpOcE9qSVh2VUdnYTVJbWFfWW14dzoyNTow/post-response.json +0 -0
- package/test/resources/9999999/legacy/v1/beta/bulk/automations/automation/definition/get-response.json +30 -0
- package/test/resources/9999999/program/retrieve-CustomerKey=testExisting_automation-response.xml +30 -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-CustomerKey=testNew_automation-response.xml +30 -0
- package/test/resources/9999999/program/retrieve-Name=testExisting_automation-response.xml +31 -0
- package/test/resources/9999999/program/retrieve-response.xml +50 -0
- package/test/resources/9999999/query/build-expected.json +2 -2
- package/test/resources/9999999/query/get-expected.json +2 -2
- package/test/resources/9999999/query/get2-expected.json +2 -2
- package/test/resources/9999999/query/patch-expected.json +2 -2
- 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/query/post-expected.json +2 -2
- package/test/resources/9999999/query/template-expected.json +2 -2
- 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/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/type.attributeGroup.test.js +55 -0
- package/test/type.attributeSet.test.js +55 -0
- package/test/type.automation.test.js +886 -0
- package/test/type.dataExtension.test.js +3 -1
- package/test/type.dataExtract.test.js +187 -0
- package/test/type.fileTransfer.test.js +185 -0
- package/test/type.importFile.test.js +186 -0
- package/test/type.mobileKeyword.test.js +0 -1
- package/test/type.query.test.js +497 -33
- package/test/type.script.test.js +367 -0
- package/test/type.triggeredSend.test.js +152 -0
- package/test/type.user.test.js +37 -11
- package/test/utils.js +10 -6
- package/.coverage-comment-template.md +0 -20
- package/lib/metadataTypes/SetDefinition.js +0 -37
- /package/test/mockRoot/deploy/testInstance/testBU/query/{testExistingQuery.query-meta.sql → testExisting_query.query-meta.sql} +0 -0
- /package/test/mockRoot/deploy/testInstance/testBU/query/{testNewQuery.query-meta.sql → testNew_query.query-meta.sql} +0 -0
- /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/queryDefinition/{retrieve-response.xml → retrieve-CustomerKey=testExisting_queryANDStatus=Active-response.xml} +0 -0
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
const chai = require('chai');
|
|
2
|
+
const chaiFiles = require('chai-files');
|
|
3
|
+
const assert = chai.assert;
|
|
4
|
+
chai.use(chaiFiles);
|
|
5
|
+
const expect = chai.expect;
|
|
6
|
+
const file = chaiFiles.file;
|
|
7
|
+
// const dir = chaiFiles.dir;
|
|
8
|
+
const cache = require('../lib/util/cache');
|
|
9
|
+
const testUtils = require('./utils');
|
|
10
|
+
const handler = require('../lib/index');
|
|
11
|
+
|
|
12
|
+
describe('type: script', () => {
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
testUtils.mockSetup();
|
|
15
|
+
});
|
|
16
|
+
afterEach(() => {
|
|
17
|
+
testUtils.mockReset();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
describe('Retrieve ================', () => {
|
|
21
|
+
it('Should retrieve all scripts', async () => {
|
|
22
|
+
// WHEN
|
|
23
|
+
const retrieve = await handler.retrieve('testInstance/testBU', ['script']);
|
|
24
|
+
// THEN
|
|
25
|
+
assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
|
|
26
|
+
|
|
27
|
+
// retrieve result
|
|
28
|
+
assert.equal(
|
|
29
|
+
retrieve['testInstance/testBU'].script
|
|
30
|
+
? Object.keys(retrieve['testInstance/testBU'].script).length
|
|
31
|
+
: 0,
|
|
32
|
+
2,
|
|
33
|
+
'only 2 scripts expected in retrieve response'
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
// get results from cache
|
|
37
|
+
const result = cache.getCache();
|
|
38
|
+
assert.equal(
|
|
39
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
40
|
+
2,
|
|
41
|
+
'only 2 scripts expected'
|
|
42
|
+
);
|
|
43
|
+
// normal test
|
|
44
|
+
assert.deepEqual(
|
|
45
|
+
await testUtils.getActualJson('testExisting_script', 'script'),
|
|
46
|
+
await testUtils.getExpectedJson('9999999', 'script', 'get'),
|
|
47
|
+
'returned metadata with correct key was not equal expected'
|
|
48
|
+
);
|
|
49
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
|
|
50
|
+
.exist;
|
|
51
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
|
|
52
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
assert.deepEqual(
|
|
56
|
+
await testUtils.getActualJson('testExisting_script_noScriptTag', 'script'),
|
|
57
|
+
await testUtils.getExpectedJson('9999999', 'script', 'get_noScriptTag'),
|
|
58
|
+
'returned metadata was not equal expected'
|
|
59
|
+
);
|
|
60
|
+
expect(
|
|
61
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
|
|
62
|
+
).to.equal(
|
|
63
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'get_noScriptTag', 'html'))
|
|
64
|
+
);
|
|
65
|
+
expect(
|
|
66
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
|
|
67
|
+
).to.not.exist;
|
|
68
|
+
|
|
69
|
+
assert.equal(
|
|
70
|
+
testUtils.getAPIHistoryLength(),
|
|
71
|
+
3,
|
|
72
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
73
|
+
);
|
|
74
|
+
return;
|
|
75
|
+
});
|
|
76
|
+
it('Should retrieve one specific script by key', async () => {
|
|
77
|
+
// WHEN
|
|
78
|
+
await handler.retrieve('testInstance/testBU', ['script'], ['testExisting_script']);
|
|
79
|
+
// THEN
|
|
80
|
+
assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
|
|
81
|
+
// get results from cache
|
|
82
|
+
const result = cache.getCache();
|
|
83
|
+
assert.equal(
|
|
84
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
85
|
+
1,
|
|
86
|
+
'only one script expected'
|
|
87
|
+
);
|
|
88
|
+
assert.deepEqual(
|
|
89
|
+
await testUtils.getActualJson('testExisting_script', 'script'),
|
|
90
|
+
await testUtils.getExpectedJson('9999999', 'script', 'get'),
|
|
91
|
+
'returned metadata was not equal expected'
|
|
92
|
+
);
|
|
93
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'html'))).to.not
|
|
94
|
+
.exist;
|
|
95
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
|
|
96
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
expect(
|
|
100
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
|
|
101
|
+
).to.not.exist;
|
|
102
|
+
expect(
|
|
103
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
|
|
104
|
+
).to.not.exist;
|
|
105
|
+
expect(
|
|
106
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
|
|
107
|
+
).to.not.exist;
|
|
108
|
+
|
|
109
|
+
assert.equal(
|
|
110
|
+
testUtils.getAPIHistoryLength(),
|
|
111
|
+
3,
|
|
112
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
113
|
+
);
|
|
114
|
+
return;
|
|
115
|
+
});
|
|
116
|
+
it('Should retrieve one specific script via --like', async () => {
|
|
117
|
+
// WHEN
|
|
118
|
+
handler.setOptions({ like: { key: '%Existing_script' } });
|
|
119
|
+
await handler.retrieve('testInstance/testBU', ['script']);
|
|
120
|
+
|
|
121
|
+
// THEN
|
|
122
|
+
assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
|
|
123
|
+
|
|
124
|
+
// get results from cache
|
|
125
|
+
const result = cache.getCache();
|
|
126
|
+
assert.equal(
|
|
127
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
128
|
+
2,
|
|
129
|
+
'two scripts in cache expected'
|
|
130
|
+
);
|
|
131
|
+
assert.deepEqual(
|
|
132
|
+
await testUtils.getActualJson('testExisting_script', 'script'),
|
|
133
|
+
await testUtils.getExpectedJson('9999999', 'script', 'get'),
|
|
134
|
+
'returned metadata was not equal expected'
|
|
135
|
+
);
|
|
136
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
|
|
137
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'get', 'ssjs'))
|
|
138
|
+
);
|
|
139
|
+
|
|
140
|
+
expect(
|
|
141
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'json'))
|
|
142
|
+
).to.not.exist;
|
|
143
|
+
expect(
|
|
144
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'ssjs'))
|
|
145
|
+
).to.not.exist;
|
|
146
|
+
expect(
|
|
147
|
+
file(testUtils.getActualFile('testExisting_script_noScriptTag', 'script', 'html'))
|
|
148
|
+
).to.not.exist;
|
|
149
|
+
|
|
150
|
+
assert.equal(
|
|
151
|
+
testUtils.getAPIHistoryLength(),
|
|
152
|
+
3,
|
|
153
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
154
|
+
);
|
|
155
|
+
return;
|
|
156
|
+
});
|
|
157
|
+
it('Should not retrieve any script via --like and key due to a mismatching filter', async () => {
|
|
158
|
+
// WHEN
|
|
159
|
+
handler.setOptions({ like: { key: 'NotExisting_script' } });
|
|
160
|
+
await handler.retrieve('testInstance/testBU', ['script']);
|
|
161
|
+
// THEN
|
|
162
|
+
assert.equal(process.exitCode, false, 'retrieve should not have thrown an error');
|
|
163
|
+
|
|
164
|
+
// get results from cache
|
|
165
|
+
const result = cache.getCache();
|
|
166
|
+
assert.equal(
|
|
167
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
168
|
+
2,
|
|
169
|
+
'two scripts in cache expected'
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.not
|
|
173
|
+
.exist;
|
|
174
|
+
assert.equal(
|
|
175
|
+
testUtils.getAPIHistoryLength(),
|
|
176
|
+
3,
|
|
177
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
178
|
+
);
|
|
179
|
+
return;
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
describe('Deploy ================', () => {
|
|
183
|
+
beforeEach(() => {
|
|
184
|
+
testUtils.mockSetup(true);
|
|
185
|
+
});
|
|
186
|
+
it('Should create & upsert a script', async () => {
|
|
187
|
+
// WHEN
|
|
188
|
+
await handler.deploy('testInstance/testBU', ['script']);
|
|
189
|
+
// THEN
|
|
190
|
+
assert.equal(process.exitCode, false, 'deploy should not have thrown an error');
|
|
191
|
+
// get results from cache
|
|
192
|
+
const result = cache.getCache();
|
|
193
|
+
assert.equal(
|
|
194
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
195
|
+
3,
|
|
196
|
+
'three scripts expected'
|
|
197
|
+
);
|
|
198
|
+
// confirm created item
|
|
199
|
+
assert.deepEqual(
|
|
200
|
+
await testUtils.getActualJson('testNew_script', 'script'),
|
|
201
|
+
await testUtils.getExpectedJson('9999999', 'script', 'post'),
|
|
202
|
+
'returned metadata was not equal expected for insert script'
|
|
203
|
+
);
|
|
204
|
+
expect(file(testUtils.getActualFile('testNew_script', 'script', 'ssjs'))).to.equal(
|
|
205
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'post', 'ssjs'))
|
|
206
|
+
);
|
|
207
|
+
// confirm updated item
|
|
208
|
+
assert.deepEqual(
|
|
209
|
+
await testUtils.getActualJson('testExisting_script', 'script'),
|
|
210
|
+
await testUtils.getExpectedJson('9999999', 'script', 'patch'),
|
|
211
|
+
'returned metadata was not equal expected for insert script'
|
|
212
|
+
);
|
|
213
|
+
expect(file(testUtils.getActualFile('testExisting_script', 'script', 'ssjs'))).to.equal(
|
|
214
|
+
file(testUtils.getExpectedFile('9999999', 'script', 'patch', 'ssjs'))
|
|
215
|
+
);
|
|
216
|
+
// check number of API calls
|
|
217
|
+
assert.equal(
|
|
218
|
+
testUtils.getAPIHistoryLength(),
|
|
219
|
+
5,
|
|
220
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
221
|
+
);
|
|
222
|
+
return;
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
describe('Templating ================', () => {
|
|
226
|
+
it('Should create a script template via retrieveAsTemplate and build it', async () => {
|
|
227
|
+
// GIVEN there is a template
|
|
228
|
+
const result = await handler.retrieveAsTemplate(
|
|
229
|
+
'testInstance/testBU',
|
|
230
|
+
'script',
|
|
231
|
+
['testExisting_script'],
|
|
232
|
+
'testSourceMarket'
|
|
233
|
+
);
|
|
234
|
+
// WHEN
|
|
235
|
+
assert.equal(
|
|
236
|
+
process.exitCode,
|
|
237
|
+
false,
|
|
238
|
+
'retrieveAsTemplate should not have thrown an error'
|
|
239
|
+
);
|
|
240
|
+
assert.equal(
|
|
241
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
242
|
+
1,
|
|
243
|
+
'only one script expected'
|
|
244
|
+
);
|
|
245
|
+
assert.deepEqual(
|
|
246
|
+
await testUtils.getActualTemplateJson('testExisting_script', 'script'),
|
|
247
|
+
await testUtils.getExpectedJson('9999999', 'script', 'template'),
|
|
248
|
+
'returned template JSON of retrieveAsTemplate was not equal expected'
|
|
249
|
+
);
|
|
250
|
+
expect(
|
|
251
|
+
file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
|
|
252
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs')));
|
|
253
|
+
// THEN
|
|
254
|
+
await handler.buildDefinition(
|
|
255
|
+
'testInstance/testBU',
|
|
256
|
+
'script',
|
|
257
|
+
'testExisting_script',
|
|
258
|
+
'testTargetMarket'
|
|
259
|
+
);
|
|
260
|
+
assert.equal(
|
|
261
|
+
process.exitCode,
|
|
262
|
+
false,
|
|
263
|
+
'buildDefinition should not have thrown an error'
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
assert.deepEqual(
|
|
267
|
+
await testUtils.getActualDeployJson('testTemplated_script', 'script'),
|
|
268
|
+
await testUtils.getExpectedJson('9999999', 'script', 'build'),
|
|
269
|
+
'returned deployment JSON was not equal expected'
|
|
270
|
+
);
|
|
271
|
+
expect(
|
|
272
|
+
file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
|
|
273
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs')));
|
|
274
|
+
|
|
275
|
+
assert.equal(
|
|
276
|
+
testUtils.getAPIHistoryLength(),
|
|
277
|
+
3,
|
|
278
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
279
|
+
);
|
|
280
|
+
return;
|
|
281
|
+
});
|
|
282
|
+
it('Should create a script template via buildTemplate and build it', async () => {
|
|
283
|
+
// download first before we test buildTemplate
|
|
284
|
+
await handler.retrieve('testInstance/testBU', ['script']);
|
|
285
|
+
// GIVEN there is a template
|
|
286
|
+
const result = await handler.buildTemplate(
|
|
287
|
+
'testInstance/testBU',
|
|
288
|
+
'script',
|
|
289
|
+
['testExisting_script'],
|
|
290
|
+
'testSourceMarket'
|
|
291
|
+
);
|
|
292
|
+
// WHEN
|
|
293
|
+
assert.equal(process.exitCode, false, 'buildTemplate should not have thrown an error');
|
|
294
|
+
|
|
295
|
+
assert.equal(
|
|
296
|
+
result.script ? Object.keys(result.script).length : 0,
|
|
297
|
+
1,
|
|
298
|
+
'only one script expected'
|
|
299
|
+
);
|
|
300
|
+
assert.deepEqual(
|
|
301
|
+
await testUtils.getActualTemplateJson('testExisting_script', 'script'),
|
|
302
|
+
await testUtils.getExpectedJson('9999999', 'script', 'template'),
|
|
303
|
+
'returned template JSON of buildTemplate was not equal expected'
|
|
304
|
+
);
|
|
305
|
+
expect(
|
|
306
|
+
file(testUtils.getActualTemplateFile('testExisting_script', 'script', 'ssjs'))
|
|
307
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'template', 'ssjs')));
|
|
308
|
+
// THEN
|
|
309
|
+
await handler.buildDefinition(
|
|
310
|
+
'testInstance/testBU',
|
|
311
|
+
'script',
|
|
312
|
+
'testExisting_script',
|
|
313
|
+
'testTargetMarket'
|
|
314
|
+
);
|
|
315
|
+
assert.equal(
|
|
316
|
+
process.exitCode,
|
|
317
|
+
false,
|
|
318
|
+
'buildDefinition should not have thrown an error'
|
|
319
|
+
);
|
|
320
|
+
|
|
321
|
+
assert.deepEqual(
|
|
322
|
+
await testUtils.getActualDeployJson('testTemplated_script', 'script'),
|
|
323
|
+
await testUtils.getExpectedJson('9999999', 'script', 'build'),
|
|
324
|
+
'returned deployment JSON was not equal expected'
|
|
325
|
+
);
|
|
326
|
+
expect(
|
|
327
|
+
file(testUtils.getActualDeployFile('testTemplated_script', 'script', 'ssjs'))
|
|
328
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'script', 'build', 'ssjs')));
|
|
329
|
+
|
|
330
|
+
assert.equal(
|
|
331
|
+
testUtils.getAPIHistoryLength(),
|
|
332
|
+
3,
|
|
333
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
334
|
+
);
|
|
335
|
+
return;
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
describe('Delete ================', () => {});
|
|
339
|
+
describe('CI/CD ================', () => {
|
|
340
|
+
it('Should return a list of files based on their type and key', async () => {
|
|
341
|
+
// WHEN
|
|
342
|
+
const fileList = await handler.getFilesToCommit('testInstance/testBU', 'script', [
|
|
343
|
+
'testExisting_script',
|
|
344
|
+
]);
|
|
345
|
+
// THEN
|
|
346
|
+
assert.equal(
|
|
347
|
+
process.exitCode,
|
|
348
|
+
false,
|
|
349
|
+
'getFilesToCommit should not have thrown an error'
|
|
350
|
+
);
|
|
351
|
+
assert.equal(fileList.length, 3, 'expected only 3 file paths (html, json, ssjs)');
|
|
352
|
+
|
|
353
|
+
assert.equal(
|
|
354
|
+
fileList[0].split('\\').join('/'),
|
|
355
|
+
'retrieve/testInstance/testBU/script/testExisting_script.script-meta.json',
|
|
356
|
+
'wrong JSON path'
|
|
357
|
+
);
|
|
358
|
+
assert.equal(
|
|
359
|
+
fileList[1].split('\\').join('/'),
|
|
360
|
+
'retrieve/testInstance/testBU/script/testExisting_script.script-meta.ssjs',
|
|
361
|
+
'wrong JSON path'
|
|
362
|
+
);
|
|
363
|
+
return;
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
describe('Execute ================', () => {});
|
|
367
|
+
});
|
|
@@ -0,0 +1,152 @@
|
|
|
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: triggeredSend', () => {
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
testUtils.mockSetup();
|
|
12
|
+
});
|
|
13
|
+
afterEach(() => {
|
|
14
|
+
testUtils.mockReset();
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
describe('Retrieve ================', () => {
|
|
18
|
+
it('Should retrieve a triggeredSend', async () => {
|
|
19
|
+
// WHEN
|
|
20
|
+
await handler.retrieve('testInstance/testBU', ['triggeredSend']);
|
|
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.triggeredSend ? Object.keys(result.triggeredSend).length : 0,
|
|
27
|
+
1,
|
|
28
|
+
'only one triggeredSend expected'
|
|
29
|
+
);
|
|
30
|
+
assert.deepEqual(
|
|
31
|
+
await testUtils.getActualJson('testExisting_triggeredSend', 'triggeredSend'),
|
|
32
|
+
await testUtils.getExpectedJson('9999999', 'triggeredSend', 'get'),
|
|
33
|
+
'returned JSON was not equal expected'
|
|
34
|
+
);
|
|
35
|
+
assert.equal(
|
|
36
|
+
testUtils.getAPIHistoryLength(),
|
|
37
|
+
10,
|
|
38
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
39
|
+
);
|
|
40
|
+
return;
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('Deploy ================', () => {
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
testUtils.mockSetup(true);
|
|
46
|
+
});
|
|
47
|
+
it('Should create & upsert a triggeredSend', async () => {
|
|
48
|
+
// WHEN
|
|
49
|
+
await handler.deploy('testInstance/testBU', ['triggeredSend']);
|
|
50
|
+
// THEN
|
|
51
|
+
assert.equal(process.exitCode, false, 'deploy should not have thrown an error');
|
|
52
|
+
// get results from cache
|
|
53
|
+
const result = cache.getCache();
|
|
54
|
+
assert.equal(
|
|
55
|
+
result.triggeredSend ? Object.keys(result.triggeredSend).length : 0,
|
|
56
|
+
2,
|
|
57
|
+
'two triggeredSends expected'
|
|
58
|
+
);
|
|
59
|
+
// confirm created item
|
|
60
|
+
assert.deepEqual(
|
|
61
|
+
await testUtils.getActualJson('testNew_triggeredSend', 'triggeredSend'),
|
|
62
|
+
await testUtils.getExpectedJson('9999999', 'triggeredSend', 'post'),
|
|
63
|
+
'returned JSON was not equal expected for insert triggeredSend'
|
|
64
|
+
);
|
|
65
|
+
// confirm updated item
|
|
66
|
+
assert.deepEqual(
|
|
67
|
+
await testUtils.getActualJson('testExisting_triggeredSend', 'triggeredSend'),
|
|
68
|
+
await testUtils.getExpectedJson('9999999', 'triggeredSend', 'patch'),
|
|
69
|
+
'returned JSON was not equal expected for update triggeredSend'
|
|
70
|
+
);
|
|
71
|
+
// check number of API calls
|
|
72
|
+
assert.equal(
|
|
73
|
+
testUtils.getAPIHistoryLength(),
|
|
74
|
+
12,
|
|
75
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
76
|
+
);
|
|
77
|
+
return;
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('Templating ================', () => {
|
|
81
|
+
it('Should create a triggeredSend template via buildTemplate and build it', async () => {
|
|
82
|
+
// download first before we test buildTemplate
|
|
83
|
+
await handler.retrieve('testInstance/testBU', ['triggeredSend']);
|
|
84
|
+
// buildTemplate
|
|
85
|
+
const result = await handler.buildTemplate(
|
|
86
|
+
'testInstance/testBU',
|
|
87
|
+
'triggeredSend',
|
|
88
|
+
['testExisting_triggeredSend'],
|
|
89
|
+
'testSourceMarket'
|
|
90
|
+
);
|
|
91
|
+
assert.equal(process.exitCode, false, 'buildTemplate should not have thrown an error');
|
|
92
|
+
assert.equal(
|
|
93
|
+
result.triggeredSend ? Object.keys(result.triggeredSend).length : 0,
|
|
94
|
+
1,
|
|
95
|
+
'only one triggeredSend expected'
|
|
96
|
+
);
|
|
97
|
+
assert.deepEqual(
|
|
98
|
+
await testUtils.getActualTemplateJson(
|
|
99
|
+
'testExisting_triggeredSend',
|
|
100
|
+
'triggeredSend'
|
|
101
|
+
),
|
|
102
|
+
await testUtils.getExpectedJson('9999999', 'triggeredSend', 'template'),
|
|
103
|
+
'returned template JSON was not equal expected'
|
|
104
|
+
);
|
|
105
|
+
// buildDefinition
|
|
106
|
+
await handler.buildDefinition(
|
|
107
|
+
'testInstance/testBU',
|
|
108
|
+
'triggeredSend',
|
|
109
|
+
'testExisting_triggeredSend',
|
|
110
|
+
'testTargetMarket'
|
|
111
|
+
);
|
|
112
|
+
assert.equal(
|
|
113
|
+
process.exitCode,
|
|
114
|
+
false,
|
|
115
|
+
'buildDefinition should not have thrown an error'
|
|
116
|
+
);
|
|
117
|
+
assert.deepEqual(
|
|
118
|
+
await testUtils.getActualDeployJson('testTemplated_triggeredSend', 'triggeredSend'),
|
|
119
|
+
await testUtils.getExpectedJson('9999999', 'triggeredSend', 'build'),
|
|
120
|
+
'returned deployment JSON was not equal expected'
|
|
121
|
+
);
|
|
122
|
+
assert.equal(
|
|
123
|
+
testUtils.getAPIHistoryLength(),
|
|
124
|
+
10,
|
|
125
|
+
'Unexpected number of requests made. Run testUtils.logAPIHistoryDebug() to see the requests'
|
|
126
|
+
);
|
|
127
|
+
return;
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
describe('Delete ================', () => {
|
|
131
|
+
it('Should delete the item', async () => {
|
|
132
|
+
// WHEN
|
|
133
|
+
const result = await handler.deleteByKey('testInstance/testBU', 'triggeredSend', [
|
|
134
|
+
'testExisting_triggeredSend',
|
|
135
|
+
]);
|
|
136
|
+
// THEN
|
|
137
|
+
assert.equal(process.exitCode, false, 'delete should not have thrown an error');
|
|
138
|
+
|
|
139
|
+
assert.equal(result, true, 'should have deleted the item');
|
|
140
|
+
return;
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
describe('Refresh ================', () => {
|
|
144
|
+
it('Should refresh a triggeredSend by key');
|
|
145
|
+
});
|
|
146
|
+
describe('Start (Execute) ================', () => {
|
|
147
|
+
it('Should start a triggeredSend by key');
|
|
148
|
+
});
|
|
149
|
+
describe('Pause ================', () => {
|
|
150
|
+
it('Should pause a triggeredSend by key');
|
|
151
|
+
});
|
|
152
|
+
});
|
package/test/type.user.test.js
CHANGED
|
@@ -7,6 +7,7 @@ const file = chaiFiles.file;
|
|
|
7
7
|
const cache = require('../lib/util/cache');
|
|
8
8
|
const testUtils = require('./utils');
|
|
9
9
|
const handler = require('../lib/index');
|
|
10
|
+
const File = require('../lib/util/file');
|
|
10
11
|
|
|
11
12
|
describe('type: user', () => {
|
|
12
13
|
beforeEach(() => {
|
|
@@ -25,8 +26,8 @@ describe('type: user', () => {
|
|
|
25
26
|
const result = cache.getCache();
|
|
26
27
|
assert.equal(
|
|
27
28
|
result.user ? Object.keys(result.user).length : 0,
|
|
28
|
-
|
|
29
|
-
'only
|
|
29
|
+
3,
|
|
30
|
+
'only three users expected'
|
|
30
31
|
);
|
|
31
32
|
assert.deepEqual(
|
|
32
33
|
await testUtils.getActualJson('testExisting_user', 'user', '_ParentBU_'),
|
|
@@ -35,9 +36,22 @@ describe('type: user', () => {
|
|
|
35
36
|
'returned metadata was not equal expected'
|
|
36
37
|
);
|
|
37
38
|
// check if MD file was created and equals expectations
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// ! this test needs to update the lastLoginDate counter because it changes with every passing day
|
|
40
|
+
const expectedFile = await File.readFile(
|
|
41
|
+
testUtils.getExpectedFile('1111111', 'user', 'retrieve', 'md'),
|
|
42
|
+
{ encoding: 'utf8' }
|
|
43
|
+
);
|
|
44
|
+
const regexFindDaysSinceLogin =
|
|
45
|
+
/\| (\d*) (seconds|minutes|days|weeks|months|years){1} \|/g;
|
|
46
|
+
// fetch expected time since last login
|
|
47
|
+
const expectedDaysSinceLogin = expectedFile.match(regexFindDaysSinceLogin);
|
|
48
|
+
// load actual file and replace days since last login with expected value
|
|
49
|
+
const actualFile = (
|
|
50
|
+
await File.readFile(`./docs/user/testInstance.users.md`, {
|
|
51
|
+
encoding: 'utf8',
|
|
52
|
+
})
|
|
53
|
+
).replaceAll(regexFindDaysSinceLogin, [expectedDaysSinceLogin[0]]);
|
|
54
|
+
expect(actualFile).to.equal(expectedFile);
|
|
41
55
|
|
|
42
56
|
assert.equal(
|
|
43
57
|
testUtils.getAPIHistoryLength(),
|
|
@@ -69,7 +83,12 @@ describe('type: user', () => {
|
|
|
69
83
|
});
|
|
70
84
|
it('Should create & upsert a user', async () => {
|
|
71
85
|
// WHEN
|
|
72
|
-
const expectedCache = [
|
|
86
|
+
const expectedCache = [
|
|
87
|
+
'testExisting_user',
|
|
88
|
+
'testExisting_user_inactive',
|
|
89
|
+
'45372cbb-06e0-438e-88d8-008981f7a18b',
|
|
90
|
+
'testNew_user',
|
|
91
|
+
];
|
|
73
92
|
await handler.deploy('testInstance/_ParentBU_', ['user'], expectedCache);
|
|
74
93
|
// THEN
|
|
75
94
|
assert.equal(process.exitCode, false, 'deploy should not have thrown an error');
|
|
@@ -78,8 +97,8 @@ describe('type: user', () => {
|
|
|
78
97
|
const result = cache.getCache();
|
|
79
98
|
assert.equal(
|
|
80
99
|
result.user ? Object.keys(result.user).length : 0,
|
|
81
|
-
|
|
82
|
-
'
|
|
100
|
+
4,
|
|
101
|
+
'four users expected'
|
|
83
102
|
);
|
|
84
103
|
// confirm if result.user only includes values from expectedCache
|
|
85
104
|
assert.deepEqual(
|
|
@@ -112,14 +131,22 @@ describe('type: user', () => {
|
|
|
112
131
|
});
|
|
113
132
|
it('Should not deploy user with Marketing Cloud role', async () => {
|
|
114
133
|
// WHEN
|
|
115
|
-
const expectedCache = [
|
|
134
|
+
const expectedCache = [
|
|
135
|
+
'testExisting_user',
|
|
136
|
+
'testExisting_user_inactive',
|
|
137
|
+
'45372cbb-06e0-438e-88d8-008981f7a18b',
|
|
138
|
+
];
|
|
116
139
|
await handler.deploy('testInstance/_ParentBU_', ['user'], ['testBlocked_user']);
|
|
117
140
|
// THEN
|
|
118
141
|
assert.equal(process.exitCode, 1, 'Deployment should have thrown an error');
|
|
119
142
|
|
|
120
143
|
// get results from cache
|
|
121
144
|
const result = cache.getCache();
|
|
122
|
-
assert.equal(
|
|
145
|
+
assert.equal(
|
|
146
|
+
result.user ? Object.keys(result.user).length : 0,
|
|
147
|
+
3,
|
|
148
|
+
'three users expected'
|
|
149
|
+
);
|
|
123
150
|
// confirm if result.user only includes values from expectedCache
|
|
124
151
|
assert.deepEqual(
|
|
125
152
|
Object.keys(result.user),
|
|
@@ -134,7 +161,6 @@ describe('type: user', () => {
|
|
|
134
161
|
);
|
|
135
162
|
return;
|
|
136
163
|
});
|
|
137
|
-
it('Should change the key during update with --changeKeyValue');
|
|
138
164
|
});
|
|
139
165
|
describe('Templating ================', () => {
|
|
140
166
|
// it('Should create a user template via retrieveAsTemplate and build it', async () => {});
|