mcdev 4.1.12 → 4.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/.github/ISSUE_TEMPLATE/bug.yml +1 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +2 -3
- package/.nycrc.json +5 -0
- package/README.md +34 -1528
- package/boilerplate/config.json +2 -6
- package/boilerplate/files/.vscode/extensions.json +1 -0
- package/boilerplate/files/.vscode/settings.json +3 -0
- package/docs/dist/documentation.md +437 -31
- package/lib/Deployer.js +10 -8
- package/lib/MetadataTypeDefinitions.js +3 -0
- package/lib/MetadataTypeInfo.js +3 -0
- package/lib/Retriever.js +14 -7
- package/lib/cli.js +1 -0
- package/lib/index.js +6 -6
- package/lib/metadataTypes/AccountUser.js +2 -2
- package/lib/metadataTypes/Asset.js +45 -35
- package/lib/metadataTypes/Automation.js +4 -4
- package/lib/metadataTypes/DataExtension.js +14 -8
- package/lib/metadataTypes/DataExtensionField.js +44 -9
- package/lib/metadataTypes/Discovery.js +5 -5
- package/lib/metadataTypes/Folder.js +30 -6
- package/lib/metadataTypes/List.js +115 -17
- package/lib/metadataTypes/MetadataType.js +73 -40
- package/lib/metadataTypes/Query.js +2 -2
- package/lib/metadataTypes/Script.js +2 -2
- package/lib/metadataTypes/TransactionalEmail.js +163 -0
- package/lib/metadataTypes/TransactionalMessage.js +127 -0
- package/lib/metadataTypes/TransactionalPush.js +77 -0
- package/lib/metadataTypes/TransactionalSMS.js +354 -0
- package/lib/metadataTypes/TriggeredSendDefinition.js +11 -9
- package/lib/metadataTypes/definitions/TransactionalEmail.definition.js +145 -0
- package/lib/metadataTypes/definitions/TransactionalPush.definition.js +109 -0
- package/lib/metadataTypes/definitions/TransactionalSMS.definition.js +103 -0
- package/lib/metadataTypes/definitions/TriggeredSendDefinition.definition.js +36 -36
- package/lib/util/auth.js +2 -2
- package/lib/util/businessUnit.js +1 -1
- package/lib/util/cli.js +19 -20
- package/lib/util/config.js +13 -12
- package/lib/util/devops.js +4 -4
- package/lib/util/init.config.js +7 -7
- package/lib/util/init.git.js +11 -23
- package/lib/util/init.js +67 -3
- package/lib/util/util.js +20 -12
- package/package.json +19 -12
- package/test/dataExtension.test.js +36 -19
- package/test/mockRoot/.mcdevrc.json +13 -2
- package/test/mockRoot/deploy/testInstance/testBU/dataExtension/childBU_dataextension_test.dataExtension-meta.json +27 -7
- package/test/mockRoot/deploy/testInstance/testBU/query/testExistingQuery.query-meta.json +1 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/testExistingQuery.query-meta.sql +3 -1
- package/test/mockRoot/deploy/testInstance/testBU/query/{testQuery.query-meta.json → testNewQuery.query-meta.json} +3 -3
- package/test/mockRoot/deploy/testInstance/testBU/query/{testQuery.query-meta.sql → testNewQuery.query-meta.sql} +0 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testExisting_temail.transactionalEmail-meta.json +24 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalEmail/testNew_temail.transactionalEmail-meta.json +24 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testExisting_tpush.transactionalPush-meta.json +18 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalPush/testNew_tpush.transactionalPush-meta.json +18 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.amp +4 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testExisting_tsms.transactionalSMS-meta.json +15 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.amp +4 -0
- package/test/mockRoot/deploy/testInstance/testBU/transactionalSMS/testNew_tsms.transactionalSMS-meta.json +15 -0
- package/test/query.test.js +57 -23
- package/test/resources/1111111/businessUnit/retrieve-response.xml +33 -0
- package/test/resources/1111111/list/retrieve-response.xml +39 -0
- package/test/resources/9999999/asset/v1/content/assets/query/post-response.json +72 -0
- package/test/resources/9999999/automation/v1/queries/549f0568-607c-4940-afef-437965094dat/patch-response.json +2 -2
- package/test/resources/9999999/automation/v1/queries/get-response.json +2 -2
- package/test/resources/9999999/automation/v1/queries/post-response.json +3 -3
- package/test/resources/9999999/dataExtension/build-expected.json +2 -2
- package/test/resources/9999999/dataFolder/retrieve-response.xml +95 -2
- package/test/resources/9999999/interaction/v1/interactions/get-response.json +296 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/code/get-response.json +32 -0
- package/test/resources/9999999/legacy/v1/beta/mobile/keyword/get-response.json +46 -0
- package/test/resources/9999999/list/retrieve-response.xml +78 -0
- package/test/resources/9999999/messaging/v1/email/definitions/get-response.json +15 -0
- package/test/resources/9999999/messaging/v1/email/definitions/post-response.json +19 -0
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/get-response.json +26 -0
- package/test/resources/9999999/messaging/v1/email/definitions/testExisting_temail/patch-response.json +26 -0
- package/test/resources/9999999/messaging/v1/push/definitions/get-response.json +15 -0
- package/test/resources/9999999/messaging/v1/push/definitions/post-response.json +13 -0
- package/test/resources/9999999/messaging/v1/push/definitions/testExisting_tpush/get-response.json +13 -0
- package/test/resources/9999999/messaging/v1/push/definitions/testExisting_tpush/patch-response.json +13 -0
- package/test/resources/9999999/messaging/v1/sms/definitions/get-response.json +15 -0
- package/test/resources/9999999/messaging/v1/sms/definitions/post-response.json +17 -0
- package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/get-response.json +18 -0
- package/test/resources/9999999/messaging/v1/sms/definitions/testExisting_tsms/patch-response.json +18 -0
- package/test/resources/9999999/query/build-expected.json +2 -2
- package/test/resources/9999999/query/build-expected.sql +6 -0
- package/test/resources/9999999/query/get-expected.json +1 -1
- package/test/resources/9999999/query/get-expected.sql +6 -0
- package/test/resources/9999999/query/patch-expected.json +1 -1
- package/test/resources/9999999/query/patch-expected.sql +6 -0
- package/test/resources/9999999/query/post-expected.json +3 -3
- package/test/resources/9999999/query/post-expected.sql +4 -0
- package/test/resources/9999999/query/template-expected.json +1 -1
- package/test/resources/9999999/query/template-expected.sql +6 -0
- package/test/resources/9999999/transactionalEmail/build-expected.json +22 -0
- package/test/resources/9999999/transactionalEmail/get-expected.json +24 -0
- package/test/resources/9999999/transactionalEmail/patch-expected.json +24 -0
- package/test/resources/9999999/transactionalEmail/post-expected.json +24 -0
- package/test/resources/9999999/transactionalEmail/template-expected.json +22 -0
- package/test/resources/9999999/transactionalPush/build-expected.json +8 -0
- package/test/resources/9999999/transactionalPush/get-expected.json +11 -0
- package/test/resources/9999999/transactionalPush/patch-expected.json +16 -0
- package/test/resources/9999999/transactionalPush/post-expected.json +16 -0
- package/test/resources/9999999/transactionalPush/template-expected.json +8 -0
- package/test/resources/9999999/transactionalSMS/build-expected.amp +4 -0
- package/test/resources/9999999/transactionalSMS/build-expected.json +13 -0
- package/test/resources/9999999/transactionalSMS/get-expected.amp +4 -0
- package/test/resources/9999999/transactionalSMS/get-expected.json +15 -0
- package/test/resources/9999999/transactionalSMS/patch-expected.amp +4 -0
- package/test/resources/9999999/transactionalSMS/patch-expected.json +15 -0
- package/test/resources/9999999/transactionalSMS/post-expected.amp +4 -0
- package/test/resources/9999999/transactionalSMS/post-expected.json +15 -0
- package/test/resources/9999999/transactionalSMS/template-expected.amp +4 -0
- package/test/resources/9999999/transactionalSMS/template-expected.json +13 -0
- package/test/transactionalEmail.test.js +120 -0
- package/test/transactionalPush.test.js +120 -0
- package/test/transactionalSMS.test.js +149 -0
- package/test/utils.js +57 -8
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"CustomerKey": "childBU_dataextension_test",
|
|
3
3
|
"Name": "childBU_dataextension_test",
|
|
4
|
-
"Description": "",
|
|
5
|
-
"IsSendable":
|
|
6
|
-
"IsTestable":
|
|
4
|
+
"Description": "Container for my test emails",
|
|
5
|
+
"IsSendable": true,
|
|
6
|
+
"IsTestable": true,
|
|
7
|
+
"SendableDataExtensionField": { "Name": "ContactKey" },
|
|
8
|
+
"SendableSubscriberField": { "Name": "Subscriber Key" },
|
|
9
|
+
"DataRetentionPeriodLength": 6,
|
|
10
|
+
"DataRetentionPeriodUnitOfMeasure": 5,
|
|
7
11
|
"RowBasedRetention": true,
|
|
8
12
|
"ResetRetentionPeriodOnImport": false,
|
|
9
13
|
"DeleteAtEndOfRetentionPeriod": false,
|
|
10
14
|
"RetainUntil": "",
|
|
11
15
|
"Fields": [
|
|
12
16
|
{
|
|
13
|
-
"Name": "
|
|
17
|
+
"Name": "FirstName",
|
|
14
18
|
"DefaultValue": "",
|
|
15
|
-
"MaxLength":
|
|
16
|
-
"IsRequired":
|
|
19
|
+
"MaxLength": 50,
|
|
20
|
+
"IsRequired": false,
|
|
17
21
|
"IsPrimaryKey": false,
|
|
18
22
|
"FieldType": "Text"
|
|
19
23
|
},
|
|
@@ -21,14 +25,30 @@
|
|
|
21
25
|
"Name": "LastName",
|
|
22
26
|
"DefaultValue": "",
|
|
23
27
|
"MaxLength": 55,
|
|
28
|
+
"IsRequired": false,
|
|
29
|
+
"IsPrimaryKey": false,
|
|
30
|
+
"FieldType": "Text"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"Name": "EmailAddress",
|
|
34
|
+
"DefaultValue": "",
|
|
35
|
+
"MaxLength": 254,
|
|
24
36
|
"IsRequired": true,
|
|
25
37
|
"IsPrimaryKey": false,
|
|
38
|
+
"FieldType": "EmailAddress"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"Name": "testField",
|
|
42
|
+
"DefaultValue": "",
|
|
43
|
+
"MaxLength": 254,
|
|
44
|
+
"IsRequired": false,
|
|
45
|
+
"IsPrimaryKey": false,
|
|
26
46
|
"FieldType": "Text"
|
|
27
47
|
},
|
|
28
48
|
{
|
|
29
49
|
"Name": "ContactKey",
|
|
30
50
|
"DefaultValue": "",
|
|
31
|
-
"MaxLength":
|
|
51
|
+
"MaxLength": 50,
|
|
32
52
|
"IsRequired": true,
|
|
33
53
|
"IsPrimaryKey": true,
|
|
34
54
|
"FieldType": "Text"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
3
|
-
"key": "
|
|
4
|
-
"description": "",
|
|
2
|
+
"name": "testNewQuery",
|
|
3
|
+
"key": "testNewQuery",
|
|
4
|
+
"description": "created on deploy",
|
|
5
5
|
"targetKey": "childBU_dataextension_test",
|
|
6
6
|
"createdDate": "2022-04-26T15:21:16.453",
|
|
7
7
|
"modifiedDate": "2022-04-26T16:04:15.88",
|
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "testExisting_temail",
|
|
3
|
+
"definitionKey": "testExisting_temail",
|
|
4
|
+
"description": "updated via deploy",
|
|
5
|
+
"classification": "Default Transactional",
|
|
6
|
+
"status": "Active",
|
|
7
|
+
"createdDate": "2020-09-10T03:29:00",
|
|
8
|
+
"modifiedDate": "2020-09-10T03:29:00",
|
|
9
|
+
"content": {
|
|
10
|
+
"customerKey": "testExisting_asset_message"
|
|
11
|
+
},
|
|
12
|
+
"subscriptions": {
|
|
13
|
+
"dataExtension": "childBU_dataextension_test",
|
|
14
|
+
"autoAddSubscriber": true,
|
|
15
|
+
"updateSubscriber": true,
|
|
16
|
+
"r__list_PathName": "my subscribers/All Subscribers"
|
|
17
|
+
},
|
|
18
|
+
"options": {
|
|
19
|
+
"trackLinks": true
|
|
20
|
+
},
|
|
21
|
+
"journey": {
|
|
22
|
+
"interactionKey": "testExisting_interaction"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "testNew_temail",
|
|
3
|
+
"definitionKey": "testNew_temail",
|
|
4
|
+
"description": "created on deploy",
|
|
5
|
+
"classification": "Default Transactional",
|
|
6
|
+
"status": "Active",
|
|
7
|
+
"createdDate": "2020-09-10T03:29:00",
|
|
8
|
+
"modifiedDate": "2020-09-10T03:29:00",
|
|
9
|
+
"content": {
|
|
10
|
+
"customerKey": "testExisting_asset_message"
|
|
11
|
+
},
|
|
12
|
+
"subscriptions": {
|
|
13
|
+
"dataExtension": "childBU_dataextension_test",
|
|
14
|
+
"autoAddSubscriber": true,
|
|
15
|
+
"updateSubscriber": true,
|
|
16
|
+
"r__list_PathName": "my subscribers/All Subscribers"
|
|
17
|
+
},
|
|
18
|
+
"options": {
|
|
19
|
+
"trackLinks": true
|
|
20
|
+
},
|
|
21
|
+
"journey": {
|
|
22
|
+
"interactionKey": "testExisting_interaction"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"definitionKey": "testExisting_tpush",
|
|
3
|
+
"name": "testExisting_tpush",
|
|
4
|
+
"status": "Active",
|
|
5
|
+
"applicationId": "ffbab4c9-fbf6-4b87-9c9a-10c6ce86e81d",
|
|
6
|
+
"description": "updated via deploy; note that applicationId can only be manually set up in Setup - Mobile Push",
|
|
7
|
+
"content": {
|
|
8
|
+
"customerKey": "mobileMessage_test"
|
|
9
|
+
},
|
|
10
|
+
"options": {
|
|
11
|
+
"sound": "temp.wmv",
|
|
12
|
+
"badge": "1",
|
|
13
|
+
"customKeys": [
|
|
14
|
+
{ "key": "key1", "value": "value1" },
|
|
15
|
+
{ "key": "key2", "value": "value2" }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"definitionKey": "testNew_tpush",
|
|
3
|
+
"name": "testNew_tpush",
|
|
4
|
+
"status": "Active",
|
|
5
|
+
"applicationId": "ffbab4c9-fbf6-4b87-9c9a-10c6ce86e81d",
|
|
6
|
+
"description": "created on deploy; note that applicationId can only be manually set up in Setup - Mobile Push",
|
|
7
|
+
"content": {
|
|
8
|
+
"customerKey": "mobileMessage_test"
|
|
9
|
+
},
|
|
10
|
+
"options": {
|
|
11
|
+
"sound": "temp.wmv",
|
|
12
|
+
"badge": "1",
|
|
13
|
+
"customKeys": [
|
|
14
|
+
{ "key": "key1", "value": "value1" },
|
|
15
|
+
{ "key": "key2", "value": "value2" }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "testExisting_tsms",
|
|
3
|
+
"definitionKey": "testExisting_tsms",
|
|
4
|
+
"description": "bla bla",
|
|
5
|
+
"status": "Active",
|
|
6
|
+
"createdDate": "2022-11-07T02:24:00",
|
|
7
|
+
"modifiedDate": "2022-11-07T02:25:00",
|
|
8
|
+
"subscriptions": {
|
|
9
|
+
"shortCode": "4912312345678",
|
|
10
|
+
"countryCode": "",
|
|
11
|
+
"autoAddSubscriber": true,
|
|
12
|
+
"updateSubscriber": true,
|
|
13
|
+
"keyword": "testExisting_keyword"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "testNew_tsms",
|
|
3
|
+
"definitionKey": "testNew_tsms",
|
|
4
|
+
"description": "created on deploy",
|
|
5
|
+
"status": "Active",
|
|
6
|
+
"createdDate": "2022-11-07T02:24:00",
|
|
7
|
+
"modifiedDate": "2022-11-07T02:25:00",
|
|
8
|
+
"subscriptions": {
|
|
9
|
+
"shortCode": "4912312345678",
|
|
10
|
+
"countryCode": "",
|
|
11
|
+
"autoAddSubscriber": true,
|
|
12
|
+
"updateSubscriber": true,
|
|
13
|
+
"keyword": "testExisting_keyword"
|
|
14
|
+
}
|
|
15
|
+
}
|
package/test/query.test.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
const
|
|
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;
|
|
2
8
|
const cache = require('../lib/util/cache');
|
|
3
9
|
const testUtils = require('./utils');
|
|
4
10
|
const handler = require('../lib/index');
|
|
@@ -24,10 +30,13 @@ describe('query', () => {
|
|
|
24
30
|
'only one query expected'
|
|
25
31
|
);
|
|
26
32
|
assert.deepEqual(
|
|
27
|
-
await testUtils.
|
|
28
|
-
await testUtils.
|
|
33
|
+
await testUtils.getActualJson('testExistingQuery', 'query'),
|
|
34
|
+
await testUtils.getExpectedJson('9999999', 'query', 'get'),
|
|
29
35
|
'returned metadata was not equal expected'
|
|
30
36
|
);
|
|
37
|
+
expect(file(testUtils.getActualFile('testExistingQuery', 'query', 'sql'))).to.equal(
|
|
38
|
+
file(testUtils.getExpectedFile('9999999', 'query', 'get', 'sql'))
|
|
39
|
+
);
|
|
31
40
|
assert.equal(
|
|
32
41
|
Object.values(testUtils.getAPIHistory()).flat().length,
|
|
33
42
|
6,
|
|
@@ -37,6 +46,9 @@ describe('query', () => {
|
|
|
37
46
|
});
|
|
38
47
|
});
|
|
39
48
|
describe('Deploy ================', () => {
|
|
49
|
+
beforeEach(() => {
|
|
50
|
+
testUtils.mockSetup(true);
|
|
51
|
+
});
|
|
40
52
|
it('Should create & upsert a query', async () => {
|
|
41
53
|
// WHEN
|
|
42
54
|
await handler.deploy('testInstance/testBU', ['query']);
|
|
@@ -48,16 +60,25 @@ describe('query', () => {
|
|
|
48
60
|
2,
|
|
49
61
|
'two querys expected'
|
|
50
62
|
);
|
|
63
|
+
// confirm created item
|
|
51
64
|
assert.deepEqual(
|
|
52
|
-
await testUtils.
|
|
53
|
-
await testUtils.
|
|
65
|
+
await testUtils.getActualJson('testNewQuery', 'query'),
|
|
66
|
+
await testUtils.getExpectedJson('9999999', 'query', 'post'),
|
|
54
67
|
'returned metadata was not equal expected for insert query'
|
|
55
68
|
);
|
|
69
|
+
expect(file(testUtils.getActualFile('testNewQuery', 'query', 'sql'))).to.equal(
|
|
70
|
+
file(testUtils.getExpectedFile('9999999', 'query', 'post', 'sql'))
|
|
71
|
+
);
|
|
72
|
+
// confirm updated item
|
|
56
73
|
assert.deepEqual(
|
|
57
|
-
await testUtils.
|
|
58
|
-
await testUtils.
|
|
74
|
+
await testUtils.getActualJson('testExistingQuery', 'query'),
|
|
75
|
+
await testUtils.getExpectedJson('9999999', 'query', 'patch'),
|
|
59
76
|
'returned metadata was not equal expected for insert query'
|
|
60
77
|
);
|
|
78
|
+
expect(file(testUtils.getActualFile('testExistingQuery', 'query', 'sql'))).to.equal(
|
|
79
|
+
file(testUtils.getExpectedFile('9999999', 'query', 'patch', 'sql'))
|
|
80
|
+
);
|
|
81
|
+
// check number of API calls
|
|
61
82
|
assert.equal(
|
|
62
83
|
Object.values(testUtils.getAPIHistory()).flat().length,
|
|
63
84
|
8,
|
|
@@ -73,7 +94,7 @@ describe('query', () => {
|
|
|
73
94
|
'testInstance/testBU',
|
|
74
95
|
'query',
|
|
75
96
|
['testExistingQuery'],
|
|
76
|
-
'
|
|
97
|
+
'testSourceMarket'
|
|
77
98
|
);
|
|
78
99
|
// WHEN
|
|
79
100
|
assert.equal(
|
|
@@ -82,22 +103,28 @@ describe('query', () => {
|
|
|
82
103
|
'only one query expected'
|
|
83
104
|
);
|
|
84
105
|
assert.deepEqual(
|
|
85
|
-
await testUtils.
|
|
86
|
-
await testUtils.
|
|
87
|
-
'returned template was not equal expected'
|
|
106
|
+
await testUtils.getActualTemplateJson('testExistingQuery', 'query'),
|
|
107
|
+
await testUtils.getExpectedJson('9999999', 'query', 'template'),
|
|
108
|
+
'returned template JSON of retrieveAsTemplate was not equal expected'
|
|
88
109
|
);
|
|
110
|
+
expect(
|
|
111
|
+
file(testUtils.getActualTemplateFile('testExistingQuery', 'query', 'sql'))
|
|
112
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'template', 'sql')));
|
|
89
113
|
// THEN
|
|
90
114
|
await handler.buildDefinition(
|
|
91
115
|
'testInstance/testBU',
|
|
92
116
|
'query',
|
|
93
117
|
'testExistingQuery',
|
|
94
|
-
'
|
|
118
|
+
'testTargetMarket'
|
|
95
119
|
);
|
|
96
120
|
assert.deepEqual(
|
|
97
|
-
await testUtils.
|
|
98
|
-
await testUtils.
|
|
99
|
-
'returned deployment
|
|
121
|
+
await testUtils.getActualDeployJson('testExistingQuery', 'query'),
|
|
122
|
+
await testUtils.getExpectedJson('9999999', 'query', 'build'),
|
|
123
|
+
'returned deployment JSON was not equal expected'
|
|
100
124
|
);
|
|
125
|
+
expect(
|
|
126
|
+
file(testUtils.getActualDeployFile('testExistingQuery', 'query', 'sql'))
|
|
127
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')));
|
|
101
128
|
assert.equal(
|
|
102
129
|
Object.values(testUtils.getAPIHistory()).flat().length,
|
|
103
130
|
6,
|
|
@@ -113,7 +140,7 @@ describe('query', () => {
|
|
|
113
140
|
'testInstance/testBU',
|
|
114
141
|
'query',
|
|
115
142
|
['testExistingQuery'],
|
|
116
|
-
'
|
|
143
|
+
'testSourceMarket'
|
|
117
144
|
);
|
|
118
145
|
// WHEN
|
|
119
146
|
assert.equal(
|
|
@@ -122,22 +149,29 @@ describe('query', () => {
|
|
|
122
149
|
'only one query expected'
|
|
123
150
|
);
|
|
124
151
|
assert.deepEqual(
|
|
125
|
-
await testUtils.
|
|
126
|
-
await testUtils.
|
|
127
|
-
'returned template was not equal expected'
|
|
152
|
+
await testUtils.getActualTemplateJson('testExistingQuery', 'query'),
|
|
153
|
+
await testUtils.getExpectedJson('9999999', 'query', 'template'),
|
|
154
|
+
'returned template JSON of buildTemplate was not equal expected'
|
|
128
155
|
);
|
|
156
|
+
expect(
|
|
157
|
+
file(testUtils.getActualTemplateFile('testExistingQuery', 'query', 'sql'))
|
|
158
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'template', 'sql')));
|
|
129
159
|
// THEN
|
|
130
160
|
await handler.buildDefinition(
|
|
131
161
|
'testInstance/testBU',
|
|
132
162
|
'query',
|
|
133
163
|
'testExistingQuery',
|
|
134
|
-
'
|
|
164
|
+
'testTargetMarket'
|
|
135
165
|
);
|
|
136
166
|
assert.deepEqual(
|
|
137
|
-
await testUtils.
|
|
138
|
-
await testUtils.
|
|
139
|
-
'returned deployment
|
|
167
|
+
await testUtils.getActualDeployJson('testExistingQuery', 'query'),
|
|
168
|
+
await testUtils.getExpectedJson('9999999', 'query', 'build'),
|
|
169
|
+
'returned deployment JSON was not equal expected'
|
|
140
170
|
);
|
|
171
|
+
expect(
|
|
172
|
+
file(testUtils.getActualDeployFile('testExistingQuery', 'query', 'sql'))
|
|
173
|
+
).to.equal(file(testUtils.getExpectedFile('9999999', 'query', 'build', 'sql')));
|
|
174
|
+
|
|
141
175
|
assert.equal(
|
|
142
176
|
Object.values(testUtils.getAPIHistory()).flat().length,
|
|
143
177
|
6,
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
|
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
4
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
5
|
+
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
|
|
6
|
+
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
|
|
7
|
+
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
|
|
8
|
+
<soap:Header>
|
|
9
|
+
<wsa:Action>RetrieveResponse</wsa:Action>
|
|
10
|
+
<wsa:MessageID>urn:uuid:9e5f98fa-4112-4416-be42-4f9e6f6886e4</wsa:MessageID>
|
|
11
|
+
<wsa:RelatesTo>urn:uuid:b94fb623-e37d-40d3-8178-e6c8ee3b40b5</wsa:RelatesTo>
|
|
12
|
+
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
|
|
13
|
+
<wsse:Security>
|
|
14
|
+
<wsu:Timestamp wsu:Id="Timestamp-3f974942-511e-4e57-9faa-c89493b836ba">
|
|
15
|
+
<wsu:Created>2022-11-29T19:42:20Z</wsu:Created>
|
|
16
|
+
<wsu:Expires>2022-11-29T19:47:20Z</wsu:Expires>
|
|
17
|
+
</wsu:Timestamp>
|
|
18
|
+
</wsse:Security>
|
|
19
|
+
</soap:Header>
|
|
20
|
+
<soap:Body>
|
|
21
|
+
<RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
|
|
22
|
+
<OverallStatus>OK</OverallStatus>
|
|
23
|
+
<RequestID>233a302f-6c1f-4fea-8b32-82a843ae806d</RequestID>
|
|
24
|
+
<Results xsi:type="BusinessUnit">
|
|
25
|
+
<PartnerKey xsi:nil="true" />
|
|
26
|
+
<ObjectID xsi:nil="true" />
|
|
27
|
+
<AccountType>None</AccountType>
|
|
28
|
+
<Subscription xsi:nil="true" />
|
|
29
|
+
<MasterUnsubscribeBehavior>ENTIRE_ENTERPRISE</MasterUnsubscribeBehavior>
|
|
30
|
+
</Results>
|
|
31
|
+
</RetrieveResponseMsg>
|
|
32
|
+
</soap:Body>
|
|
33
|
+
</soap:Envelope>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
|
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
4
|
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
|
5
|
+
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
|
|
6
|
+
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
|
|
7
|
+
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
|
|
8
|
+
<soap:Header>
|
|
9
|
+
<wsa:Action>RetrieveResponse</wsa:Action>
|
|
10
|
+
<wsa:MessageID>urn:uuid:26648e52-3bac-4eca-a5e1-ad71d38b56fe</wsa:MessageID>
|
|
11
|
+
<wsa:RelatesTo>urn:uuid:8552cfbd-466c-447e-a232-13d945e44a5c</wsa:RelatesTo>
|
|
12
|
+
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
|
|
13
|
+
<wsse:Security>
|
|
14
|
+
<wsu:Timestamp wsu:Id="Timestamp-c80ba907-ecc4-447d-8418-140c4ca108de">
|
|
15
|
+
<wsu:Created>2022-11-29T19:42:21Z</wsu:Created>
|
|
16
|
+
<wsu:Expires>2022-11-29T19:47:21Z</wsu:Expires>
|
|
17
|
+
</wsu:Timestamp>
|
|
18
|
+
</wsse:Security>
|
|
19
|
+
</soap:Header>
|
|
20
|
+
<soap:Body>
|
|
21
|
+
<RetrieveResponseMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
|
|
22
|
+
<OverallStatus>OK</OverallStatus>
|
|
23
|
+
<RequestID>11e9f8a8-e5e6-4082-93bd-5840060512ce</RequestID>
|
|
24
|
+
<Results xsi:type="List">
|
|
25
|
+
<PartnerKey xsi:nil="true" />
|
|
26
|
+
<CreatedDate>2017-01-24T06:32:34.453</CreatedDate>
|
|
27
|
+
<ModifiedDate>2017-01-24T06:32:34.453</ModifiedDate>
|
|
28
|
+
<ID>15</ID>
|
|
29
|
+
<ObjectID>1f793b8b-cb23-4bb4-9ec4-1e0bf9511960</ObjectID>
|
|
30
|
+
<CustomerKey>All Subscribers - 277</CustomerKey>
|
|
31
|
+
<ListName>All Subscribers</ListName>
|
|
32
|
+
<Category>277</Category>
|
|
33
|
+
<Type>Private</Type>
|
|
34
|
+
<Description>Contains all subscribers</Description>
|
|
35
|
+
<ListClassification>ExactTargetList</ListClassification>
|
|
36
|
+
</Results>
|
|
37
|
+
</RetrieveResponseMsg>
|
|
38
|
+
</soap:Body>
|
|
39
|
+
</soap:Envelope>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"count": 2,
|
|
3
|
+
"page": 1,
|
|
4
|
+
"pageSize": 50,
|
|
5
|
+
"links": {},
|
|
6
|
+
"items": [
|
|
7
|
+
{
|
|
8
|
+
"id": 808714,
|
|
9
|
+
"customerKey": "testExisting_asset_message",
|
|
10
|
+
"assetType": { "id": 208, "name": "htmlemail", "displayName": "HTML Email" },
|
|
11
|
+
"name": "testExisting_asset_message",
|
|
12
|
+
"createdDate": "2021-01-31T14:11:01.423-06:00",
|
|
13
|
+
"createdBy": {
|
|
14
|
+
"id": 700304523,
|
|
15
|
+
"email": "",
|
|
16
|
+
"name": "SFMC DEVOPS app user",
|
|
17
|
+
"userId": "700304523"
|
|
18
|
+
},
|
|
19
|
+
"modifiedDate": "2021-01-31T14:13:30-06:00",
|
|
20
|
+
"modifiedBy": {
|
|
21
|
+
"id": 700304523,
|
|
22
|
+
"name": "SFMC DEVOPS app user",
|
|
23
|
+
"userId": "700304523"
|
|
24
|
+
},
|
|
25
|
+
"status": { "id": 1, "name": "Draft" },
|
|
26
|
+
"category": { "id": 290833, "name": "Content Builder", "parentId": 0 },
|
|
27
|
+
"availableViews": ["html", "text", "subjectline", "preheader"],
|
|
28
|
+
"data": {
|
|
29
|
+
"email": {
|
|
30
|
+
"options": { "characterEncoding": "us-ascii" },
|
|
31
|
+
"legacy": {
|
|
32
|
+
"legacyId": 531213,
|
|
33
|
+
"legacyKey": "testExisting_asset_message",
|
|
34
|
+
"legacyType": "email",
|
|
35
|
+
"legacyCategoryId": 290835
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"legacyData": {
|
|
40
|
+
"legacyId": 531213,
|
|
41
|
+
"legacyKey": "testExisting_asset_message",
|
|
42
|
+
"legacyType": "email",
|
|
43
|
+
"legacyCategoryId": 290835
|
|
44
|
+
},
|
|
45
|
+
"modelVersion": 2
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": 1209971,
|
|
49
|
+
"customerKey": "mobileMessage_test",
|
|
50
|
+
"assetType": { "id": 230, "name": "jsonmessage", "displayName": "JSON Message" },
|
|
51
|
+
"name": "mobileMessage_test",
|
|
52
|
+
"createdDate": "2022-12-07T02:49:36.857-06:00",
|
|
53
|
+
"createdBy": {
|
|
54
|
+
"id": 700301950,
|
|
55
|
+
"email": "joern.berkefeld@accenture.com",
|
|
56
|
+
"name": "J├Ârn Berkefeld (ASGR)",
|
|
57
|
+
"userId": "700301950"
|
|
58
|
+
},
|
|
59
|
+
"modifiedDate": "2022-12-07T02:49:57.44-06:00",
|
|
60
|
+
"modifiedBy": {
|
|
61
|
+
"id": 700301950,
|
|
62
|
+
"email": "joern.berkefeld@accenture.com",
|
|
63
|
+
"name": "J├Ârn Berkefeld (ASGR)",
|
|
64
|
+
"userId": "700301950"
|
|
65
|
+
},
|
|
66
|
+
"status": { "id": 1, "name": "Draft" },
|
|
67
|
+
"category": { "id": 283608, "name": "Content Builder", "parentId": 0 },
|
|
68
|
+
"availableViews": ["push"],
|
|
69
|
+
"modelVersion": 2
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"queryDefinitionId": "549f0568-607c-4940-afef-437965094dat",
|
|
3
3
|
"name": "testExistingQuery",
|
|
4
4
|
"key": "testExistingQuery",
|
|
5
|
-
"description": "updated",
|
|
6
|
-
"queryText": "SELECT\n SubscriberKey as testField\nFROM\n _Subscribers ",
|
|
5
|
+
"description": "updated on deploy",
|
|
6
|
+
"queryText": "SELECT\n SubscriberKey as testField\nFROM\n _Subscribers\nWHERE\n country IN ('test')\n",
|
|
7
7
|
"targetName": "childBU_dataextension_test",
|
|
8
8
|
"targetKey": "childBU_dataextension_test",
|
|
9
9
|
"targetId": "30400c03-0ec4-ec11-b83c-48df37d1de8a",
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
"queryDefinitionId": "549f0568-607c-4940-afef-437965094dat",
|
|
8
8
|
"name": "testExistingQuery",
|
|
9
9
|
"key": "testExistingQuery",
|
|
10
|
-
"description": "",
|
|
11
|
-
"queryText": "SELECT\n SubscriberKey as testField\nFROM\n _Subscribers ",
|
|
10
|
+
"description": "bla bla",
|
|
11
|
+
"queryText": "SELECT\n SubscriberKey as testField\nFROM\n _Subscribers\nWHERE\n country IN ('test')\n",
|
|
12
12
|
"targetName": "childBU_dataextension_test",
|
|
13
13
|
"targetKey": "childBU_dataextension_test",
|
|
14
14
|
"targetId": "30400c03-0ec4-ec11-b83c-48df37d1de8a",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"queryDefinitionId": "549f0568-607c-4940-afef-437965094dae",
|
|
3
|
-
"name": "
|
|
4
|
-
"key": "
|
|
5
|
-
"description": "",
|
|
3
|
+
"name": "testNewQuery",
|
|
4
|
+
"key": "testNewQuery",
|
|
5
|
+
"description": "created on deploy",
|
|
6
6
|
"queryText": "SELECT\n SubscriberKey as testField\nFROM\n _Subscribers ",
|
|
7
7
|
"targetName": "childBU_dataextension_test",
|
|
8
8
|
"targetKey": "childBU_dataextension_test",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"CustomerKey": "
|
|
3
|
-
"Name": "
|
|
2
|
+
"CustomerKey": "childBU_dataextension_testTarget",
|
|
3
|
+
"Name": "childBU_dataextension_testTarget",
|
|
4
4
|
"Description": "Container for my test emails",
|
|
5
5
|
"IsSendable": true,
|
|
6
6
|
"IsTestable": true,
|