-
Notifications
You must be signed in to change notification settings - Fork 13
/
mergeDiff3.test.js
83 lines (73 loc) · 1.93 KB
/
mergeDiff3.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import { test } from 'node:test';
import { strict as assert } from 'node:assert';
import * as Diff3 from '../index.mjs';
test('mergeDiff3', async t => {
await t.test('returns conflict: false if no conflicts', t => {
const o = ['AA'];
const a = ['AA'];
const b = ['AA'];
const expected = ['AA'];
const r = Diff3.mergeDiff3(a, o, b);
assert.equal(r.conflict, false);
assert.deepEqual(r.result, expected);
});
await t.test('performs merge diff3 on arrays', t => {
const o = ['AA', 'ZZ', '00', 'M', '99'];
const a = ['AA', 'a', 'b', 'c', 'ZZ', 'new', '00', 'a', 'a', 'M', '99'];
const b = ['AA', 'a', 'd', 'c', 'ZZ', '11', 'M', 'z', 'z', '99'];
const expected = [
'AA',
'<<<<<<< a',
'a',
'b',
'c',
'||||||| o',
'=======',
'a',
'd',
'c',
'>>>>>>> b',
'ZZ',
'<<<<<<< a',
'new',
'00',
'a',
'a',
'||||||| o',
'00',
'=======',
'11',
'>>>>>>> b',
'M',
'z',
'z',
'99'
];
const r = Diff3.mergeDiff3(a, o, b, { label: { a: 'a', o: 'o', b: 'b' } });
assert.equal(r.conflict, true);
assert.deepEqual(r.result, expected);
});
t.test('yaml comparison - issue #46', t => {
const o = `title: "title"
description: "description"`;
const a = `title: "title"
description: "description changed"`;
const b = `title: "title changed"
description: "description"`;
const expected = [
'<<<<<<< a',
'title: "title"',
'description: "description changed"',
'||||||| o',
'title: "title"',
'description: "description"',
'=======',
'title: "title changed"',
'description: "description"',
'>>>>>>> b'
];
const r = Diff3.mergeDiff3(a, o, b, { label: { a: 'a', o: 'o', b: 'b' }, stringSeparator: /[\r\n]+/ });
assert.equal(r.conflict, true);
assert.deepEqual(r.result, expected);
});
});