- Add independent Fable model mapping - Rename startup model to default model - Default to the Opus mapping and preserve Subagent inheritance - Replace 1M checkboxes with standard toggle switches - Align form fields and simplify explanatory text - Remove bulk role synchronization - Update translations and regression tests
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 = { fable: 'model-f', fable1m: false, 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();
|
|
});
|