@@ -210,5 +210,81 @@ describe('findDiff', () => {
210210 string : 'was' ,
211211 } ) ;
212212 } ) ;
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+ } ) ;
213289 } ) ;
214290} ) ;
0 commit comments