@@ -140,6 +140,107 @@ describe('a single field in a CustomObject xml does not overwrite (blank) the ex
140
140
expect ( fs . readdirSync ( path . join ( pathToBroker , 'fields' ) ) . length ) . to . equal ( 3 ) ;
141
141
} ) ;
142
142
143
+ it ( 'will not overwrite .object-meta.xml in package retrieval ' , async ( ) => {
144
+ const TEST_PACKAGE = 'TestPackage' ;
145
+
146
+ const result : MetadataApiRetrieveStatus = {
147
+ done : true ,
148
+ fileProperties : [
149
+ {
150
+ createdById : '005bm000006BUfFAAW' ,
151
+ createdByName : 'William Ruemmele' ,
152
+ createdDate : '2024-09-30T18:10:44.000Z' ,
153
+ fileName : 'TestPackage/objects/test__c.object' ,
154
+ fullName : 'test__c' ,
155
+ id : '01Ibm000001ZQS5EAO' ,
156
+ lastModifiedById : '005bm000006BUfFAAW' ,
157
+ lastModifiedByName : 'William Ruemmele' ,
158
+ lastModifiedDate : '2024-09-30T18:10:44.000Z' ,
159
+ manageableState : ManageableState . Unmanaged ,
160
+ type : 'CustomObject' ,
161
+ } ,
162
+ {
163
+ createdById : '005bm000006BUfFAAW' ,
164
+ createdByName : 'William Ruemmele' ,
165
+ createdDate : '2024-09-30T18:10:44.000Z' ,
166
+ fileName : 'TestPackage/layouts/test__c-test Layout.layout' ,
167
+ fullName : 'test__c-test Layout' ,
168
+ id : '00hbm000006bcEHAAY' ,
169
+ lastModifiedById : '005bm000006BUfFAAW' ,
170
+ lastModifiedByName : 'William Ruemmele' ,
171
+ lastModifiedDate : '2024-09-30T18:11:30.000Z' ,
172
+ manageableState : ManageableState . Unmanaged ,
173
+ type : 'Layout' ,
174
+ } ,
175
+ {
176
+ createdById : '005bm000006BUfFAAW' ,
177
+ createdByName : 'William Ruemmele' ,
178
+ createdDate : '2024-09-30T18:12:05.000Z' ,
179
+ fileName : 'TestPackage/package.xml' ,
180
+ fullName : 'package' ,
181
+ id : '0A2bm000000eGN7CAM' ,
182
+ lastModifiedById : '005bm000006BUfFAAW' ,
183
+ lastModifiedByName : 'William Ruemmele' ,
184
+ lastModifiedDate : '2024-09-30T18:12:05.000Z' ,
185
+ manageableState : ManageableState . Unmanaged ,
186
+ type : 'Package' ,
187
+ } ,
188
+ {
189
+ createdById : '005bm000006BUfFAAW' ,
190
+ createdByName : 'William Ruemmele' ,
191
+ createdDate : '2024-09-30T19:59:19.089Z' ,
192
+ fileName : 'unpackaged/package.xml' ,
193
+ fullName : 'unpackaged/package.xml' ,
194
+ id : '' ,
195
+ lastModifiedById : '005bm000006BUfFAAW' ,
196
+ lastModifiedByName : 'William Ruemmele' ,
197
+ lastModifiedDate : '2024-09-30T19:59:19.089Z' ,
198
+ manageableState : ManageableState . Unmanaged ,
199
+ type : 'Package' ,
200
+ } ,
201
+ ] ,
202
+ id : '09Sbm000001mg2nEAA' ,
203
+ status : RequestStatus . Succeeded ,
204
+ success : true ,
205
+ zipFile :
206
+ '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' ,
207
+ messages : [ ] ,
208
+ } ;
209
+
210
+ const retrieve = new MetadataApiRetrieve ( {
211
+ singlePackage : true ,
212
+ packageOptions : [ { name : TEST_PACKAGE , outputDir : path . join ( testDir , TEST_PACKAGE ) } ] ,
213
+ merge : true ,
214
+ output : path . join ( testDir , TEST_PACKAGE ) ,
215
+ usernameOrConnection : 'abc' ,
216
+ } ) ;
217
+ await retrieve . post ( result ) ;
218
+ expect (
219
+ fs . existsSync (
220
+ path . join ( testDir , TEST_PACKAGE , 'main' , 'default' , 'objects' , 'test__c' , 'test__c.object-meta.xml' )
221
+ )
222
+ ) . to . be . true ;
223
+ expect (
224
+ fs . existsSync (
225
+ path . join ( testDir , TEST_PACKAGE , 'main' , 'default' , 'objects' , 'test__c' , 'fields' , 'status__c.field-meta.xml' )
226
+ )
227
+ ) . to . be . true ;
228
+ expect (
229
+ fs . existsSync (
230
+ path . join (
231
+ testDir ,
232
+ TEST_PACKAGE ,
233
+ 'main' ,
234
+ 'default' ,
235
+ 'objects' ,
236
+ 'test__c' ,
237
+ 'fields' ,
238
+ 'completion__c.field-meta.xml'
239
+ )
240
+ )
241
+ ) . to . be . true ;
242
+ } ) ;
243
+
143
244
it ( `verify ${ FORCE_APP } ` , async ( ) => {
144
245
await validateSourceDir ( FORCE_APP ) ;
145
246
} ) ;
0 commit comments