Skip to main content
Glama
strategy.test.ts2.64 kB
/** * 模型策略测试 */ import { describe, it, expect, beforeEach } from 'vitest'; import { ModelStrategy } from '../collaboration/strategy.js'; describe('ModelStrategy', () => { let strategy: ModelStrategy; beforeEach(() => { strategy = new ModelStrategy(); }); describe('detectTaskType', () => { it('应该检测前端任务', () => { const taskType = strategy.detectTaskType('创建一个 React 组件'); expect(taskType).toBe('frontend'); }); it('应该检测后端任务', () => { const taskType = strategy.detectTaskType('设计 REST API 接口'); expect(taskType).toBe('backend'); }); it('应该检测数据库任务', () => { const taskType = strategy.detectTaskType('优化 SQL 查询性能'); expect(taskType).toBe('database'); }); it('应该检测测试任务', () => { const taskType = strategy.detectTaskType('编写单元测试'); expect(taskType).toBe('testing'); }); it('应该返回通用类型对于未知任务', () => { const taskType = strategy.detectTaskType('做一些事情'); expect(taskType).toBe('general'); }); }); describe('getRecommendedModel', () => { it('应该返回推荐的模型', () => { const result = strategy.getRecommendedModel('设计系统架构'); expect(result.model).toBeTruthy(); expect(result.taskType).toBeTruthy(); }); it('应该包含推荐原因', () => { const result = strategy.getRecommendedModel('优化性能'); expect(result.reason).toBeTruthy(); }); }); describe('getTierForTaskType', () => { it('应该返回任务类型对应的模型级别', () => { expect(strategy.getTierForTaskType('frontend')).toBe('balanced'); expect(strategy.getTierForTaskType('backend')).toBe('powerful'); expect(strategy.getTierForTaskType('testing')).toBe('fast'); }); }); describe('自定义规则', () => { it('应该支持添加自定义规则', () => { strategy.addRule({ taskType: 'devops', preferredModel: 'gpt-4o', keywords: ['kubernetes', 'docker'], }); const rules = strategy.getRules(); expect(rules.some(r => r.taskType === 'devops')).toBe(true); }); it('应该在检测到匹配任务时使用自定义规则', () => { strategy.addRule({ taskType: 'devops', preferredModel: 'custom-model', }); const result = strategy.getRecommendedModel('部署 Docker 容器'); expect(result.taskType).toBe('devops'); expect(result.model).toBe('custom-model'); }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/7836246/claude-team-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server