Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/extension/conversation/vscode-node/test/userActionsResolvedModel.spec.ts
13405 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { describe, expect, test } from 'vitest';
7
import { resolveModelIdForTelemetry } from '../resolveModelId';
8
9
/**
10
* Tests the resolveModelIdForTelemetry helper used by copy/insert/apply
11
* telemetry events to substitute 'copilot/auto' with the actual resolved model.
12
*
13
* Integration tests verifying that resolvedModel is propagated through
14
* DefaultIntentRequestHandler into result metadata live in
15
* defaultIntentRequestHandler.spec.ts.
16
*/
17
describe('resolveModelIdForTelemetry', () => {
18
test('returns resolvedModel when modelId is copilot/auto', () => {
19
expect(resolveModelIdForTelemetry('copilot/auto', 'gpt-4o')).toBe('gpt-4o');
20
});
21
22
test('falls back to copilot/auto when resolvedModel is undefined', () => {
23
expect(resolveModelIdForTelemetry('copilot/auto', undefined)).toBe('copilot/auto');
24
});
25
26
test('falls back to copilot/auto when resolvedModel is empty string', () => {
27
expect(resolveModelIdForTelemetry('copilot/auto', '')).toBe('copilot/auto');
28
});
29
30
test('returns original modelId when not copilot/auto', () => {
31
expect(resolveModelIdForTelemetry('gpt-4o', 'gpt-4o-2024-05-13')).toBe('gpt-4o');
32
});
33
34
test('returns original modelId when not copilot/auto and no resolvedModel', () => {
35
expect(resolveModelIdForTelemetry('claude-sonnet-4', undefined)).toBe('claude-sonnet-4');
36
});
37
38
test('does not substitute for empty modelId', () => {
39
expect(resolveModelIdForTelemetry('', 'gpt-4o')).toBe('');
40
});
41
});
42
43