Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/editor/test/browser/widget/diffEditorWidget.test.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import assert from 'assert';
7
import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';
8
import { UnchangedRegion } from '../../../browser/widget/diffEditor/diffEditorViewModel.js';
9
import { LineRange } from '../../../common/core/ranges/lineRange.js';
10
import { DetailedLineRangeMapping } from '../../../common/diff/rangeMapping.js';
11
12
suite('DiffEditorWidget2', () => {
13
14
ensureNoDisposablesAreLeakedInTestSuite();
15
16
suite('UnchangedRegion', () => {
17
function serialize(regions: UnchangedRegion[]): unknown {
18
return regions.map(r => `${r.originalUnchangedRange} - ${r.modifiedUnchangedRange}`);
19
}
20
21
test('Everything changed', () => {
22
assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(
23
[new DetailedLineRangeMapping(new LineRange(1, 10), new LineRange(1, 10), [])],
24
10,
25
10,
26
3,
27
3,
28
)), []);
29
});
30
31
test('Nothing changed', () => {
32
assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(
33
[],
34
10,
35
10,
36
3,
37
3,
38
)), [
39
"[1,11) - [1,11)"
40
]);
41
});
42
43
test('Change in the middle', () => {
44
assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(
45
[new DetailedLineRangeMapping(new LineRange(50, 60), new LineRange(50, 60), [])],
46
100,
47
100,
48
3,
49
3,
50
)), ([
51
'[1,47) - [1,47)',
52
'[63,101) - [63,101)'
53
]));
54
});
55
56
test('Change at the end', () => {
57
assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(
58
[new DetailedLineRangeMapping(new LineRange(99, 100), new LineRange(100, 100), [])],
59
100,
60
100,
61
3,
62
3,
63
)), (["[1,96) - [1,96)"]));
64
});
65
});
66
});
67
68