Path: blob/main/src/vs/workbench/contrib/chat/test/common/chatPerf.test.ts
13406 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*--------------------------------------------------------------------------------------------*/4import assert from 'assert';5import { getMarks } from '../../../../../base/common/performance.js';6import { URI } from '../../../../../base/common/uri.js';7import { ensureNoDisposablesAreLeakedInTestSuite } from '../../../../../base/test/common/utils.js';8import { ChatPerfMark, clearChatMarks, markChat } from '../../common/chatPerf.js';910suite('chatPerf', () => {1112ensureNoDisposablesAreLeakedInTestSuite();1314let sessionResource: URI;1516setup(() => {17sessionResource = URI.parse(`test://session/${Date.now()}`);18});1920teardown(() => {21clearChatMarks(sessionResource);22});2324test('markChat emits a mark with the expected prefix', () => {25markChat(sessionResource, ChatPerfMark.RequestStart);2627const marks = getMarks().filter(m => m.name.includes(sessionResource.toString()));28assert.strictEqual(marks.length, 1);29assert.ok(marks[0].name.startsWith('code/chat/'));30assert.ok(marks[0].name.endsWith('/request/start'));31});3233test('clearChatMarks removes all marks for the session', () => {34markChat(sessionResource, ChatPerfMark.RequestStart);35markChat(sessionResource, ChatPerfMark.FirstToken);3637clearChatMarks(sessionResource);3839const marks = getMarks().filter(m => m.name.includes(sessionResource.toString()));40assert.strictEqual(marks.length, 0);41});4243test('clearChatMarks does not affect marks from a different session', () => {44const otherSession = URI.parse(`test://session/other-${Date.now()}`);45markChat(sessionResource, ChatPerfMark.RequestStart);46markChat(otherSession, ChatPerfMark.FirstToken);4748clearChatMarks(sessionResource);4950const remaining = getMarks().filter(m => m.name.includes(otherSession.toString()));51assert.strictEqual(remaining.length, 1);5253clearChatMarks(otherSession);54});55});565758