@@ -210,5 +210,81 @@ describe('findDiff', () => {
210
210
string : 'was' ,
211
211
} ) ;
212
212
} ) ;
213
+
214
+ it ( 'array orderIndepended' , ( ) => {
215
+ MHD . orderIndependent = true ;
216
+ const target = [ 1 , 2 , 3 , 4 ] ;
217
+
218
+ const deletedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 ] ) ;
219
+ const deletedDiffsStart = MHD . findDiff ( target , [ 2 , 3 , 4 ] ) ;
220
+ const deletedDiffsMiddle = MHD . findDiff ( target , [ 1 , 3 , 4 ] ) ;
221
+ const revDeletedEnd = revertChanges ( [ 1 , 2 , 3 ] , deletedDiffsEnd ) ;
222
+ const revDeletedStart = revertChanges ( [ 2 , 3 , 4 ] , deletedDiffsStart ) ;
223
+ const revDeletedMiddle = revertChanges ( [ 1 , 3 , 4 ] , deletedDiffsMiddle ) ;
224
+
225
+ const addedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 , 4 , 5 ] ) ;
226
+ const addedDiffsStart = MHD . findDiff ( target , [ 5 , 1 , 2 , 3 , 4 ] ) ;
227
+ const addedDiffsMiddle = MHD . findDiff ( target , [ 1 , 2 , 5 , 3 , 4 ] ) ;
228
+ const revAddedEnd = revertChanges ( [ 1 , 2 , 3 , 4 , 5 ] , addedDiffsEnd ) ;
229
+ const revAddedStart = revertChanges ( [ 5 , 1 , 2 , 3 , 4 ] , addedDiffsStart ) ;
230
+ const revAddedMiddle = revertChanges ( [ 1 , 2 , 5 , 3 , 4 ] , addedDiffsMiddle ) ;
231
+
232
+ const editedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 , 5 ] ) ;
233
+ const editedDiffsStart = MHD . findDiff ( target , [ 5 , 2 , 3 , 4 ] ) ;
234
+ const editedDiffsMiddle = MHD . findDiff ( target , [ 1 , 2 , 5 , 4 ] ) ;
235
+ const revEditedEnd = revertChanges ( [ 1 , 2 , 3 , 5 ] , editedDiffsEnd ) ;
236
+ const revEditedStart = revertChanges ( [ 5 , 2 , 3 , 4 ] , editedDiffsStart ) ;
237
+ const revEditedMiddle = revertChanges ( [ 1 , 2 , 5 , 4 ] , editedDiffsMiddle ) ;
238
+
239
+ expect ( revDeletedEnd ) . toEqual ( target ) ;
240
+ expect ( revDeletedStart ) . toEqual ( target ) ;
241
+ expect ( revDeletedMiddle ) . toEqual ( target ) ;
242
+
243
+ expect ( revAddedEnd ) . toEqual ( target ) ;
244
+ expect ( revAddedStart ) . toEqual ( [ 5 , 1 , 2 , 3 ] ) ;
245
+ expect ( revAddedMiddle ) . toEqual ( [ 1 , 2 , 5 , 3 ] ) ;
246
+
247
+ expect ( revEditedEnd ) . toEqual ( target ) ;
248
+ expect ( revEditedStart ) . toEqual ( target ) ;
249
+ expect ( revEditedMiddle ) . toEqual ( target ) ;
250
+ } ) ;
251
+
252
+ it ( 'array !orderIndepended' , ( ) => {
253
+ MHD . orderIndependent = false ;
254
+ const target = [ 1 , 2 , 3 , 4 ] ;
255
+
256
+ const deletedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 ] ) ;
257
+ const deletedDiffsStart = MHD . findDiff ( target , [ 2 , 3 , 4 ] ) ;
258
+ const deletedDiffsMiddle = MHD . findDiff ( target , [ 1 , 3 , 4 ] ) ;
259
+ const revDeletedEnd = revertChanges ( [ 1 , 2 , 3 ] , deletedDiffsEnd ) ;
260
+ const revDeletedStart = revertChanges ( [ 2 , 3 , 4 ] , deletedDiffsStart ) ;
261
+ const revDeletedMiddle = revertChanges ( [ 1 , 3 , 4 ] , deletedDiffsMiddle ) ;
262
+
263
+ const addedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 , 4 , 5 ] ) ;
264
+ const addedDiffsStart = MHD . findDiff ( target , [ 5 , 1 , 2 , 3 , 4 ] ) ;
265
+ const addedDiffsMiddle = MHD . findDiff ( target , [ 1 , 2 , 5 , 3 , 4 ] ) ;
266
+ const revAddedEnd = revertChanges ( [ 1 , 2 , 3 , 4 , 5 ] , addedDiffsEnd ) ;
267
+ const revAddedStart = revertChanges ( [ 5 , 1 , 2 , 3 , 4 ] , addedDiffsStart ) ;
268
+ const revAddedMiddle = revertChanges ( [ 1 , 2 , 5 , 3 , 4 ] , addedDiffsMiddle ) ;
269
+
270
+ const editedDiffsEnd = MHD . findDiff ( target , [ 1 , 2 , 3 , 5 ] ) ;
271
+ const editedDiffsStart = MHD . findDiff ( target , [ 5 , 2 , 3 , 4 ] ) ;
272
+ const editedDiffsMiddle = MHD . findDiff ( target , [ 1 , 2 , 5 , 4 ] ) ;
273
+ const revEditedEnd = revertChanges ( [ 1 , 2 , 3 , 5 ] , editedDiffsEnd ) ;
274
+ const revEditedStart = revertChanges ( [ 5 , 2 , 3 , 4 ] , editedDiffsStart ) ;
275
+ const revEditedMiddle = revertChanges ( [ 1 , 2 , 5 , 4 ] , editedDiffsMiddle ) ;
276
+
277
+ expect ( revDeletedEnd ) . toEqual ( target ) ;
278
+ expect ( revDeletedStart ) . toEqual ( target ) ;
279
+ expect ( revDeletedMiddle ) . toEqual ( target ) ;
280
+
281
+ expect ( revAddedEnd ) . toEqual ( target ) ;
282
+ expect ( revAddedStart ) . toEqual ( target ) ;
283
+ expect ( revAddedMiddle ) . toEqual ( target ) ;
284
+
285
+ expect ( revEditedEnd ) . toEqual ( target ) ;
286
+ expect ( revEditedStart ) . toEqual ( target ) ;
287
+ expect ( revEditedMiddle ) . toEqual ( target ) ;
288
+ } ) ;
213
289
} ) ;
214
290
} ) ;
0 commit comments