Path: blob/main/src/vs/workbench/contrib/inlineChat/test/browser/inlineChatStrategies.test.ts
3297 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 { CancellationTokenSource } from '../../../../../base/common/cancellation.js';6import { IntervalTimer } from '../../../../../base/common/async.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';8import { asProgressiveEdit } from '../../browser/utils.js';9import assert from 'assert';101112suite('AsyncEdit', () => {1314ensureNoDisposablesAreLeakedInTestSuite();1516test('asProgressiveEdit', async () => {17const interval = new IntervalTimer();18const edit = {19range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 },20text: 'Hello, world!'21};2223const cts = new CancellationTokenSource();24const result = asProgressiveEdit(interval, edit, 5, cts.token);2526// Verify the range27assert.deepStrictEqual(result.range, edit.range);2829const iter = result.newText[Symbol.asyncIterator]();3031// Verify the newText32const a = await iter.next();33assert.strictEqual(a.value, 'Hello,');34assert.strictEqual(a.done, false);3536// Verify the next word37const b = await iter.next();38assert.strictEqual(b.value, ' world!');39assert.strictEqual(b.done, false);4041const c = await iter.next();42assert.strictEqual(c.value, undefined);43assert.strictEqual(c.done, true);4445cts.dispose();46});4748test('asProgressiveEdit - cancellation', async () => {49const interval = new IntervalTimer();50const edit = {51range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 },52text: 'Hello, world!'53};5455const cts = new CancellationTokenSource();56const result = asProgressiveEdit(interval, edit, 5, cts.token);5758// Verify the range59assert.deepStrictEqual(result.range, edit.range);6061const iter = result.newText[Symbol.asyncIterator]();6263// Verify the newText64const a = await iter.next();65assert.strictEqual(a.value, 'Hello,');66assert.strictEqual(a.done, false);6768cts.dispose(true);6970const c = await iter.next();71assert.strictEqual(c.value, undefined);72assert.strictEqual(c.done, true);73});74});757677