@@ -11,18 +11,15 @@ import { PostReplicatedDataset } from '../../../../src/modules/upsert';
1111import { MetadataBuilder } from '../../../../src/metadataBuilder' ;
1212import ConnectedObjectUpsert from '../../../../src/commands/analytics/connected-objects/upsert' ;
1313import {
14- createReplicatedDateset ,
15- getDataConnectors ,
16- getEmptyReplicatedDataset ,
17- getReplicatedDatasetFields ,
18- getReplicatedDatasets ,
14+ createReplicatedDateset , getDataConnectors , getEmptyReplicatedDataset , getReplicatedDatasetFields , getReplicatedDatasets
1915} from './mocks/apis' ;
2016import { recipeFields , simpleRecipe } from './mocks/recipes' ;
2117
2218describe ( 'analytics recipe run' , ( ) => {
2319 const $$ = new TestContext ( ) ;
2420 const testOrg = new MockTestOrgData ( ) ;
2521 const config = new Config ( { root : resolve ( __dirname , '../../../package.json' ) } ) ;
22+ const commandParams = [ '--target-org' , 'test@org.com' , '--recipe-names' , 'Simple_Recipe' ] ;
2623
2724 beforeEach ( 'prepare session' , async ( ) => {
2825 await $$ . stubAuths ( testOrg ) ;
@@ -40,50 +37,42 @@ describe('analytics recipe run', () => {
4037 result = createReplicatedDateset ( body . connectorId , body . sourceObjectName ) ;
4138 } else {
4239 // Replicated Data Fields API
43- const fieldIsSkipped = new Map ( [ ... recipeFields , 'Extra' ] . map ( ( field ) => [ field , true ] ) ) ;
40+ const fieldIsSkipped = new Map ( recipeFields . map ( ( field ) => [ field , true ] ) ) ;
4441 result = getReplicatedDatasetFields ( fieldIsSkipped ) ;
4542 }
4643 return Promise . resolve ( result ) ;
4744 } ;
4845 } ) ;
4946
50- after ( async ( ) => {
51- $$ . restore ( ) ;
52- } ) ;
53-
54- it ( 'should create a new connected-object with all recipe fields (except "Extra"), return a json' , async ( ) => {
47+ after ( async ( ) => { $$ . restore ( ) ; } ) ;
48+
49+ it ( 'should upsert multiple fields, return a json' , async ( ) => {
5550 stubMethodsInMetadataBuilder ( $$ , simpleRecipe ) ;
56- const cmd = new ConnectedObjectUpsert (
57- [ '--target-org' , 'test@org.com' , '--recipe-names' , 'Simple_Recipe' , '--json' ] ,
58- config
59- ) ;
51+ const cmd = new ConnectedObjectUpsert ( [ ...commandParams , '--json' ] , config ) ;
6052 const result = await cmd . run ( ) ;
6153 expect ( result ) . to . deep . equal ( [
6254 {
6355 objectName : 'User' ,
6456 isNew : true ,
6557 fields : recipeFields ,
6658 fieldsCount : recipeFields . length ,
67- connectorName : 'SFDC_LOCAL' ,
68- } ,
59+ connectorName : 'SFDC_LOCAL'
60+ }
6961 ] ) ;
7062 } ) ;
7163
72- it ( 'should update a single connected-object with 1 changed fields , return a json' , async ( ) => {
64+ it ( 'should update a single field , return a json' , async ( ) => {
7365 $$ . SANDBOX . stub ( MetadataBuilder . prototype , 'getElements' ) . resolves ( [ simpleRecipe ] ) ;
7466 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasets' ) . resolves (
7567 getReplicatedDatasets ( [ 'User' ] ) . replicatedDatasets
7668 ) ;
77- const fieldIsSkipped = new Map ( [ ... recipeFields , 'Extra' ] . map ( ( field ) => [ field , false ] ) ) ;
69+ const fieldIsSkipped = new Map ( recipeFields . map ( ( field ) => [ field , false ] ) ) ;
7870 const USERNAME = 'Username' ;
7971 fieldIsSkipped . set ( USERNAME , true ) ;
8072 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasetFields' as any ) . resolves (
8173 getReplicatedDatasetFields ( fieldIsSkipped )
8274 ) ;
83- const cmd = new ConnectedObjectUpsert (
84- [ '--target-org' , 'test@org.com' , '--recipe-names' , 'Simple_Recipe' , '--json' , '--verbose' ] ,
85- config
86- ) ;
75+ const cmd = new ConnectedObjectUpsert ( [ ...commandParams , '--json' ] , config ) ;
8776 const result = await cmd . run ( ) ;
8877 expect ( result ) . to . deep . equal ( [
8978 {
@@ -92,39 +81,35 @@ describe('analytics recipe run', () => {
9281 fields : [ USERNAME ] ,
9382 fieldsCount : 1 ,
9483 connectorName : 'SFDC_LOCAL' ,
95- } ,
84+ }
9685 ] ) ;
9786 } ) ;
9887
99- it ( 'should update a single connected-object with 1 changed field, print result ' , async ( ) => {
88+ it ( 'should upsert multiple fields, print result (warn: 1 extra field found) ' , async ( ) => {
10089 $$ . SANDBOX . stub ( MetadataBuilder . prototype , 'getElements' ) . resolves ( [ simpleRecipe ] ) ;
10190 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasets' ) . resolves (
10291 getReplicatedDatasets ( [ 'User' ] ) . replicatedDatasets
10392 ) ;
104- const fieldIsSkipped = new Map ( [ ...recipeFields , 'Extra' ] . map ( ( field ) => [ field , true ] ) ) ;
93+ const fieldIsSkipped = new Map ( recipeFields . map ( ( field ) => [ field , true ] ) ) ;
94+ recipeFields . push ( 'Extra__c' ) ;
10595 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasetFields' as any ) . resolves (
10696 getReplicatedDatasetFields ( fieldIsSkipped )
10797 ) ;
108- const cmd = new ConnectedObjectUpsert (
109- [ '--target-org' , 'test@org.com' , '--recipe-names' , 'Simple_Recipe' , '--verbose' ] ,
110- config
111- ) ;
98+ const cmd = new ConnectedObjectUpsert ( [ ...commandParams , '--verbose' ] , config ) ;
11299 await cmd . run ( ) ;
113100 } ) ;
114101
115- it ( 'should make no change and return a json' , async ( ) => {
102+ it ( 'should make no changes, return a json' , async ( ) => {
116103 $$ . SANDBOX . stub ( MetadataBuilder . prototype , 'getElements' ) . resolves ( [ simpleRecipe ] ) ;
117104 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasets' ) . resolves (
118105 getReplicatedDatasets ( [ 'User' ] ) . replicatedDatasets
119106 ) ;
120- const fieldIsSkipped = new Map ( [ ...recipeFields , 'Extra' ] . map ( ( field ) => [ field , false ] ) ) ;
107+ const fieldIsSkipped = new Map ( recipeFields . map ( ( field ) => [ field , false ] ) ) ;
108+ recipeFields . push ( 'Extra__c' ) ;
121109 $$ . SANDBOX . stub ( DataConnectionHelper . prototype , 'getReplicatedDatasetFields' as any ) . resolves (
122110 getReplicatedDatasetFields ( fieldIsSkipped )
123111 ) ;
124- const cmd = new ConnectedObjectUpsert (
125- [ '--target-org' , 'test@org.com' , '--recipe-names' , 'Simple_Recipe' , '--json' , '--verbose' ] ,
126- config
127- ) ;
112+ const cmd = new ConnectedObjectUpsert ( [ ...commandParams , '--json' , '--verbose' ] , config ) ;
128113 const result = await cmd . run ( ) ;
129114 expect ( result ) . to . lengthOf ( 0 ) ;
130115 } ) ;
0 commit comments