Skip to content

Commit 0a5ed68

Browse files
committed
test(diff-test): add case for revert array changes rely on orderIndependent flag
1 parent bc05f1a commit 0a5ed68

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

src/__tests__/diff-test.js

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)