Skip to content

Commit c036641

Browse files
committed
Test that we can mix similar and equal items with moves
1 parent c03989f commit c036641

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

test/arrayChanges.spec.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,4 +491,23 @@ describe('array-changes', function () {
491491
{ type: 'moveSource', value: 'c', actualIndex: 2, expected: 'c', expectedIndex: 0, id: 1, equal: true, last: true }
492492
]);
493493
});
494+
495+
it("handles moves with a mix of equal and similar items", function () {
496+
var a = ['aaa', 'bbb', 'ccc', 'dddd'];
497+
var b = ['ddd', 'ccc', 'bbb', 'aaa'];
498+
499+
expect(arrayChanges(a, b, function (a, b) {
500+
return expect.equal(a, b);
501+
}, function (a, b) {
502+
return expect.equal(a.slice(0, 3), b.slice(0, 3));
503+
}), 'to equal', [
504+
{ type: 'moveTarget', value: 'dddd', actualIndex: 3, id: 2, last: false, expected: 'ddd', expectedIndex: 0, equal: false },
505+
{ type: 'moveTarget', value: 'ccc', actualIndex: 2, id: 1, last: false, expected: 'ccc', expectedIndex: 1, equal: true },
506+
{ type: 'moveTarget', value: 'bbb', actualIndex: 1, id: 0, last: false, expected: 'bbb', expectedIndex: 2, equal: true },
507+
{ type: 'equal', value: 'aaa', actualIndex: 0, expected: 'aaa', expectedIndex: 3 },
508+
{ type: 'moveSource', value: 'bbb', actualIndex: 1, id: 0, expected: 'bbb', expectedIndex: 2, equal: true },
509+
{ type: 'moveSource', value: 'ccc', actualIndex: 2, id: 1, expected: 'ccc', expectedIndex: 1, equal: true },
510+
{ type: 'moveSource', value: 'dddd', actualIndex: 3, id: 2, expected: 'ddd', expectedIndex: 0, equal: false, last: true }
511+
]);
512+
});
494513
});

0 commit comments

Comments
 (0)