Path: blob/main/src/vs/editor/test/browser/widget/diffEditorWidget.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../base/test/common/utils.js';7import { UnchangedRegion } from '../../../browser/widget/diffEditor/diffEditorViewModel.js';8import { LineRange } from '../../../common/core/ranges/lineRange.js';9import { DetailedLineRangeMapping } from '../../../common/diff/rangeMapping.js';1011suite('DiffEditorWidget2', () => {1213ensureNoDisposablesAreLeakedInTestSuite();1415suite('UnchangedRegion', () => {16function serialize(regions: UnchangedRegion[]): unknown {17return regions.map(r => `${r.originalUnchangedRange} - ${r.modifiedUnchangedRange}`);18}1920test('Everything changed', () => {21assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(22[new DetailedLineRangeMapping(new LineRange(1, 10), new LineRange(1, 10), [])],2310,2410,253,263,27)), []);28});2930test('Nothing changed', () => {31assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(32[],3310,3410,353,363,37)), [38"[1,11) - [1,11)"39]);40});4142test('Change in the middle', () => {43assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(44[new DetailedLineRangeMapping(new LineRange(50, 60), new LineRange(50, 60), [])],45100,46100,473,483,49)), ([50'[1,47) - [1,47)',51'[63,101) - [63,101)'52]));53});5455test('Change at the end', () => {56assert.deepStrictEqual(serialize(UnchangedRegion.fromDiffs(57[new DetailedLineRangeMapping(new LineRange(99, 100), new LineRange(100, 100), [])],58100,59100,603,613,62)), (["[1,96) - [1,96)"]));63});64});65});666768