Path: blob/main/extensions/copilot/src/platform/chunking/node/test/naiveChunker.spec.ts
13405 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 * as assert from 'assert';6import { suite, test } from 'vitest';7import { trimCommonLeadingWhitespace } from '../naiveChunker';89suite('trimCommonLeadingWhitespace', () => {10test('should trim common leading spaces', () => {11const { trimmedLines, shortestLeadingCommonWhitespace } = trimCommonLeadingWhitespace([12' const foo = 1;',13' const bar = 2;',14' const baz = 3;',15]);1617assert.deepStrictEqual(trimmedLines, [18'const foo = 1;',19' const bar = 2;',20' const baz = 3;',21]);22assert.strictEqual(shortestLeadingCommonWhitespace, ' ');23});2425test('should trim common leading tabs', () => {26const { trimmedLines, shortestLeadingCommonWhitespace } = trimCommonLeadingWhitespace([27'\t\tconst foo = 1;',28'\t\t\tconst bar = 2;',29'\t\t\t\tconst baz = 3;',30]);3132assert.deepStrictEqual(trimmedLines, [33'const foo = 1;',34'\tconst bar = 2;',35'\t\tconst baz = 3;',36]);37assert.strictEqual(shortestLeadingCommonWhitespace, '\t\t');38});3940test('should handle mixed spaces and tabs', () => {41const { trimmedLines, shortestLeadingCommonWhitespace } = trimCommonLeadingWhitespace([42' const foo = 1;',43' \t const bar = 2;',44' \t const baz = 3;',45]);4647assert.deepStrictEqual(trimmedLines, [48' const foo = 1;',49' \t const bar = 2;',50'\t const baz = 3;',51]);52assert.strictEqual(shortestLeadingCommonWhitespace, ' ');53});54});555657