- Add per-role model rows with inline 1M context controls - Add bulk action to apply Sonnet settings to all roles - Persist startup model and context settings in official settings.json fields - Preserve custom role mappings and Subagent configuration - Add multilingual labels and UI regression coverage - Validate behavior with real Claude Code 2.1.292
19 lines
1.2 KiB
TypeScript
19 lines
1.2 KiB
TypeScript
import { expect, test } from 'bun:test';
|
|
import { claudeCodeModelPreview, isKnownClaudeCodeModel } from '../src/services/claudeCodeModels';
|
|
|
|
const routes = { opus: 'model-a', sonnet: 'model-b', haiku: 'model-c', opus1m: true, sonnet1m: false, haiku1m: false };
|
|
test('role selections follow changed mappings and role context flags', () => {
|
|
expect(claudeCodeModelPreview('opus', routes).model).toBe('model-a[1m]');
|
|
expect(claudeCodeModelPreview('sonnet', { ...routes, sonnet: 'model-d', sonnet1m: true }).model).toBe('model-d[1m]');
|
|
});
|
|
test('direct model stays pinned and has its own context flag', () => {
|
|
expect(claudeCodeModelPreview('model-a', routes)).toEqual({ role: null, model: 'model-a', context1m: false });
|
|
expect(claudeCodeModelPreview('model-a[1m]', { ...routes, opus: 'other' }).model).toBe('model-a[1m]');
|
|
});
|
|
test('role aliases do not need to appear in CPA model list', () => {
|
|
expect(isKnownClaudeCodeModel('sonnet[1m]', [])).toBeTrue();
|
|
expect(isKnownClaudeCodeModel('', [])).toBeTrue();
|
|
expect(isKnownClaudeCodeModel('model-a[1m]', [{ name: 'model-a' }])).toBeTrue();
|
|
expect(isKnownClaudeCodeModel('unknown', [{ name: 'model-a' }])).toBeFalse();
|
|
});
|