Path: blob/main/extensions/copilot/test/inline/agent.stest.ts
13388 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*--------------------------------------------------------------------------------------------*/456import * as assert from 'assert';7import { CHAT_MODEL } from '../../src/platform/configuration/common/configurationService';8import { TestingServiceCollection } from '../../src/platform/test/node/services';9import { ssuite, stest } from '../base/stest';10import { assertFileContent, assertNoElidedCodeComments, getWorkspaceDiagnostics } from '../simulation/outcomeValidators';11import { EditTestStrategyPanel, simulatePanelCodeMapper } from '../simulation/panelCodeMapperSimulator';12import { assertWorkspaceEdit, fromFixture } from '../simulation/stestUtil';13import { EditTestStrategy, IScenario } from '../simulation/types';1415function executeEditTest(16strategy: EditTestStrategyPanel,17testingServiceCollection: TestingServiceCollection,18scenario: IScenario19): Promise<void> {20return simulatePanelCodeMapper(testingServiceCollection, scenario, strategy);21}2223function forAgent(callback: (model: string | undefined) => void): void {24callback(undefined);25callback(CHAT_MODEL.CLAUDE_SONNET);26}2728const skipAgentTests = true;2930forAgent((model) => {31const title = model ? `edit-agent-${model}` : 'edit-agent';32ssuite.optional(() => skipAgentTests, { title, location: 'panel' }, () => {33stest({ description: 'issue #8098: extract function to unseen file', language: 'typescript', model }, (testingServiceCollection) => {34return executeEditTest(EditTestStrategy.Agent, testingServiceCollection, {35files: [36fromFixture('multiFileEdit/issue-8098/debugUtils.ts'),37fromFixture('multiFileEdit/issue-8098/debugTelemetry.ts'),38],39queries: [40{41query: 'Extract filterExceptionsFromTelemetry to debugTelemetry.ts',42validate: async (outcome, workspace, accessor) => {43assertWorkspaceEdit(outcome);44assert.ok(outcome.files.length === 2, 'Expected two files to be edited');4546const utilsTs = assertFileContent(outcome.files, 'debugUtils.ts');47assert.ok(!utilsTs.includes('function filterExceptionsFromTelemetry'), 'Expected filterExceptionsFromTelemetry to be extracted');48const telemetryFile = assertFileContent(outcome.files, 'debugTelemetry.ts');49assert.ok(telemetryFile.includes('filterExceptionsFromTelemetry'), 'Expected filterExceptionsFromTelemetry to be extracted');5051assert.strictEqual((await getWorkspaceDiagnostics(accessor, workspace, 'tsc')).filter(d => d.kind === 'syntactic').length, 0);52assertNoElidedCodeComments(outcome);53}54}55]56});57});58});59});606162