Path: blob/main/extensions/copilot/src/extension/conversation/vscode-node/test/userActionsResolvedModel.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 { describe, expect, test } from 'vitest';6import { resolveModelIdForTelemetry } from '../resolveModelId';78/**9* Tests the resolveModelIdForTelemetry helper used by copy/insert/apply10* telemetry events to substitute 'copilot/auto' with the actual resolved model.11*12* Integration tests verifying that resolvedModel is propagated through13* DefaultIntentRequestHandler into result metadata live in14* defaultIntentRequestHandler.spec.ts.15*/16describe('resolveModelIdForTelemetry', () => {17test('returns resolvedModel when modelId is copilot/auto', () => {18expect(resolveModelIdForTelemetry('copilot/auto', 'gpt-4o')).toBe('gpt-4o');19});2021test('falls back to copilot/auto when resolvedModel is undefined', () => {22expect(resolveModelIdForTelemetry('copilot/auto', undefined)).toBe('copilot/auto');23});2425test('falls back to copilot/auto when resolvedModel is empty string', () => {26expect(resolveModelIdForTelemetry('copilot/auto', '')).toBe('copilot/auto');27});2829test('returns original modelId when not copilot/auto', () => {30expect(resolveModelIdForTelemetry('gpt-4o', 'gpt-4o-2024-05-13')).toBe('gpt-4o');31});3233test('returns original modelId when not copilot/auto and no resolvedModel', () => {34expect(resolveModelIdForTelemetry('claude-sonnet-4', undefined)).toBe('claude-sonnet-4');35});3637test('does not substitute for empty modelId', () => {38expect(resolveModelIdForTelemetry('', 'gpt-4o')).toBe('');39});40});414243