mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 17:23:02 +00:00
91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
/* global Diff3:false */
|
|
describe('diff3', function() {
|
|
function split(s) {
|
|
return s ? s.split(/ /) : [];
|
|
}
|
|
|
|
it('performs diff3 merge', function() {
|
|
var o = split('AA ZZ 00 M 99'),
|
|
a = split('AA a b c ZZ new 00 a a M 99'),
|
|
b = split('AA a d c ZZ 11 M z z 99'),
|
|
res = Diff3.diff3_merge(a, o, b);
|
|
|
|
/*
|
|
AA
|
|
<<<<<<< a
|
|
a
|
|
b
|
|
c
|
|
||||||| o
|
|
=======
|
|
a
|
|
d
|
|
c
|
|
>>>>>>> b
|
|
ZZ
|
|
<<<<<<< a
|
|
new
|
|
00
|
|
a
|
|
a
|
|
||||||| o
|
|
00
|
|
=======
|
|
11
|
|
>>>>>>> b
|
|
M
|
|
z
|
|
z
|
|
99
|
|
*/
|
|
|
|
expect(res[0].ok).to.eql(['AA']);
|
|
expect(res[0].conflict).to.be.undefined;
|
|
|
|
expect(res[1].ok).to.be.undefined;
|
|
expect(res[1].conflict.o).to.eql([]);
|
|
expect(res[1].conflict.a).to.eql(['a', 'b', 'c']);
|
|
expect(res[1].conflict.b).to.eql(['a', 'd', 'c']);
|
|
|
|
expect(res[2].ok).to.eql(['ZZ']);
|
|
expect(res[2].conflict).to.be.undefined;
|
|
|
|
expect(res[3].ok).to.be.undefined;
|
|
expect(res[3].conflict.o).to.eql(['00']);
|
|
expect(res[3].conflict.a).to.eql(['new', '00', 'a', 'a']);
|
|
expect(res[3].conflict.b).to.eql(['11']);
|
|
|
|
expect(res[4].ok).to.eql(['M', 'z', 'z', '99']);
|
|
expect(res[4].conflict).to.be.undefined;
|
|
});
|
|
|
|
it('can include false conflicts', function() {
|
|
var o = split('AA ZZ'),
|
|
a = split('AA a b c ZZ'),
|
|
b = split('AA a b c ZZ'),
|
|
res = Diff3.diff3_merge(a, o, b, false);
|
|
|
|
expect(res[0].ok).to.eql(['AA']);
|
|
expect(res[0].conflict).to.be.undefined;
|
|
|
|
expect(res[1].ok).to.be.undefined;
|
|
expect(res[1].conflict.o).to.eql([]);
|
|
expect(res[1].conflict.a).to.eql(['a', 'b', 'c']);
|
|
expect(res[1].conflict.b).to.eql(['a', 'b', 'c']);
|
|
|
|
expect(res[2].ok).to.eql(['ZZ']);
|
|
expect(res[2].conflict).to.be.undefined;
|
|
});
|
|
|
|
it('can exclude false conflicts', function() {
|
|
var o = split('AA ZZ'),
|
|
a = split('AA a b c ZZ'),
|
|
b = split('AA a b c ZZ'),
|
|
res = Diff3.diff3_merge(a, o, b, true);
|
|
|
|
expect(res[0].ok).to.eql(['AA', 'a', 'b', 'c', 'ZZ']);
|
|
expect(res[0].conflict).to.be.undefined;
|
|
});
|
|
|
|
});
|