modelmix
Version:
🧬 Reliable interface with automatic fallback for AI LLMs.
66 lines (53 loc) • 2.36 kB
JavaScript
const { expect } = require('chai');
const { ModelMix, MixAnthropic } = require('../index.js');
describe('Anthropic Model Registration Tests', () => {
it('should register Claude Fable 5', () => {
const model = ModelMix.new();
model.fable5();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-fable-5');
expect(model.models[0].provider).to.be.instanceOf(MixAnthropic);
});
it('should register Claude Fable 5 with max effort thinking', () => {
const model = ModelMix.new();
model.fable5think();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-fable-5');
expect(model.models[0].provider.options.output_config).to.deep.equal({ effort: 'max' });
expect(model.models[0].provider.options.thinking).to.deep.equal({ display: 'summarized' });
});
it('should register Claude Opus 4.8', () => {
const model = ModelMix.new();
model.opus48();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-opus-4-8');
expect(model.models[0].provider).to.be.instanceOf(MixAnthropic);
});
it('should register Claude Opus 4.8 with thinking enabled', () => {
const model = ModelMix.new();
model.opus48think();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-opus-4-8');
expect(model.models[0].provider.options.thinking).to.deep.equal({
type: 'enabled',
budget_tokens: 1638
});
});
it('should register Claude Sonnet 5', () => {
const model = ModelMix.new();
model.sonnet5();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-sonnet-5');
expect(model.models[0].provider).to.be.instanceOf(MixAnthropic);
});
it('should register Claude Sonnet 5 with thinking enabled', () => {
const model = ModelMix.new();
model.sonnet5think();
expect(model.models).to.have.length(1);
expect(model.models[0].key).to.equal('claude-sonnet-5');
expect(model.models[0].provider.options.thinking).to.deep.equal({
type: 'enabled',
budget_tokens: 1638
});
});
});