Spaces:
Sleeping
Sleeping
HonzysClawdbot
test: add coverage for pure utility modules, fix Vitest 60% threshold (#339)
eb47743 unverified | import { describe, it, expect } from 'vitest' | |
| import { MODEL_CATALOG, getModelByAlias, getModelByName, getAllModels } from '../models' | |
| describe('MODEL_CATALOG', () => { | |
| it('has entries', () => { | |
| expect(MODEL_CATALOG.length).toBeGreaterThan(0) | |
| }) | |
| it('each model has required fields', () => { | |
| for (const model of MODEL_CATALOG) { | |
| expect(model.alias).toBeTruthy() | |
| expect(model.name).toBeTruthy() | |
| expect(model.provider).toBeTruthy() | |
| expect(model.description).toBeTruthy() | |
| expect(typeof model.costPer1k).toBe('number') | |
| expect(model.costPer1k).toBeGreaterThanOrEqual(0) | |
| } | |
| }) | |
| it('has unique aliases', () => { | |
| const aliases = MODEL_CATALOG.map(m => m.alias) | |
| expect(new Set(aliases).size).toBe(aliases.length) | |
| }) | |
| }) | |
| describe('getModelByAlias', () => { | |
| it('finds model by alias', () => { | |
| const model = getModelByAlias('sonnet') | |
| expect(model).not.toBeUndefined() | |
| expect(model!.alias).toBe('sonnet') | |
| expect(model!.provider).toBe('anthropic') | |
| }) | |
| it('returns undefined for unknown alias', () => { | |
| expect(getModelByAlias('nonexistent')).toBeUndefined() | |
| expect(getModelByAlias('')).toBeUndefined() | |
| }) | |
| it('finds haiku model', () => { | |
| const model = getModelByAlias('haiku') | |
| expect(model).not.toBeUndefined() | |
| expect(model!.costPer1k).toBeLessThan(1) | |
| }) | |
| }) | |
| describe('getModelByName', () => { | |
| it('finds model by full name', () => { | |
| const model = getModelByAlias('sonnet')! | |
| const found = getModelByName(model.name) | |
| expect(found).not.toBeUndefined() | |
| expect(found!.alias).toBe('sonnet') | |
| }) | |
| it('returns undefined for unknown name', () => { | |
| expect(getModelByName('nonexistent/model')).toBeUndefined() | |
| }) | |
| }) | |
| describe('getAllModels', () => { | |
| it('returns a copy of all models', () => { | |
| const all = getAllModels() | |
| expect(all).toHaveLength(MODEL_CATALOG.length) | |
| }) | |
| it('returns a new array (not same reference)', () => { | |
| expect(getAllModels()).not.toBe(MODEL_CATALOG) | |
| }) | |
| }) | |