mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-30 13:13:25 +00:00
61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { normalizeModelId, resolveAgentModelSelection } from './agent-status-bar.utils'
|
|
|
|
describe('normalizeModelId', () => {
|
|
it('treats empty and default values as unset', () => {
|
|
expect(normalizeModelId('')).toBeNull()
|
|
expect(normalizeModelId(' default ')).toBeNull()
|
|
expect(normalizeModelId(undefined)).toBeNull()
|
|
})
|
|
|
|
it('returns trimmed model ids', () => {
|
|
expect(normalizeModelId(' gpt-5.1-codex ')).toBe('gpt-5.1-codex')
|
|
})
|
|
})
|
|
|
|
describe('resolveAgentModelSelection', () => {
|
|
it('prefers runtime model over configured model', () => {
|
|
const selection = resolveAgentModelSelection({
|
|
models: [
|
|
{
|
|
id: 'a',
|
|
provider: 'codex',
|
|
label: 'Model A',
|
|
thinkingOptions: [{ id: 'low', label: 'Low' }],
|
|
defaultThinkingOptionId: 'low',
|
|
},
|
|
],
|
|
runtimeModelId: 'a',
|
|
configuredModelId: 'b',
|
|
explicitThinkingOptionId: null,
|
|
})
|
|
|
|
expect(selection.activeModelId).toBe('a')
|
|
expect(selection.displayModel).toBe('Model A')
|
|
expect(selection.selectedThinkingId).toBe('low')
|
|
})
|
|
|
|
it('uses explicit thinking option when provided', () => {
|
|
const selection = resolveAgentModelSelection({
|
|
models: [
|
|
{
|
|
id: 'a',
|
|
provider: 'codex',
|
|
label: 'Model A',
|
|
thinkingOptions: [
|
|
{ id: 'low', label: 'Low' },
|
|
{ id: 'high', label: 'High' },
|
|
],
|
|
defaultThinkingOptionId: 'low',
|
|
},
|
|
],
|
|
runtimeModelId: 'a',
|
|
configuredModelId: null,
|
|
explicitThinkingOptionId: 'high',
|
|
})
|
|
|
|
expect(selection.selectedThinkingId).toBe('high')
|
|
expect(selection.displayThinking).toBe('High')
|
|
})
|
|
})
|